Re: 文字から DateTime への変換のヘルプが必要ですJMP16+ をお持ちの場合は、Format Pattern でこれを行うことができます

他のパターンは次のようなものです-- . その他// ::
Re: 文字から DateTime への変換のヘルプが必要ですジム、
これをどこに置くのですか?
式として試してみましたが、うまくいきませんでした
これを「フォーマットパターンの設定」(jthiの提案bのように)として入力しようとしましたが、複数行入力できません。
JMP16を使用しています
ありがとう
Re: 文字から DateTime への変換のヘルプが必要ですJMP 16 を使用していますが、動作しませんでした。 以下は私の手順です。 間違いを指摘していただけると助かります。
最初に式 (以前は忘れていた) を
Date1.DateTimeFinalFormat = Date1.Char
Date1.DateTimeFinalFormat 日付タイプ/モデリングを Numeric および Continuous に設定します
フォーマットをフォーマットパターンに設定
「出力形式を使用」のチェックを外す
書式設定パターン
// ::
入力側で書式パターンを設定
-- .
エラーが発行される対象:

Re: 文字から DateTime への変換のヘルプが必要です入力側もHHをhhに、AMPMをampmに変更しました。
ある時点で、フォーマットを受け入れ、Date1.DateTime.FinalFormat 列を Character に戻します。
Re: 文字から DateTime への変換のヘルプが必要ですこんにちは。
お元気でしょうか。お久しぶりです!
スクリプトでこれを行っていると思います。 JMP は、多くの日付と時刻の形式をネイティブに処理できます。 この場合、文字列を時刻に変換する Informat ( ) 関数が役立ちます。
あなたの日付はネイティブ形式にかなり近いです。 03-Mar-22 12.13 PM はネイティブ形式ではありませんが、03/Mar/22 12:13 PM は !
したがって、変更する必要があるのは、ダッシュをスラッシュ ( "-" が "/" になる) に変更し、ピリオドをコロン ( "." が ":" になる) にすることだけです。
Substitute ( ) コマンドでこれを行うことができます。 これが完了したら、それを Informat ( ) でラップして、数値の日付を取得できます。 あとは、ロケール形式である目的の表示形式を適用するだけです。
したがって、プロセスは次のような新しい列を作成することです。
a) Informat ( ) を Substitute ( ) の周りにラップする式があり、かつ
b) 下に数値の日付を保持しながら、出力を希望どおりにフォーマットします。
これがどうなるか教えてください。
ブレイディ
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "FixedDate",
formula( Informat(
Substitute( :"date1.char"n,
"-", "/",
".", ":"
)
) ),
<<FORMAT></FORMAT>

Re: 文字から DateTime への変換のヘルプが必要です私はJMPとそれが日付を処理する方法についてかなりの問題を抱えています(そして特に回) ユーザーが PC で異なる設定をしている場合。 JMP16+ では少し改善されましたが、ユーザーが異なるローカル設定を使用している場合、デバッグが非常に煩わしい場合があります。
「最も簡単な」(そして最も堅牢な)オプションは、常に(私の意見では)状況に基づいてゼロから日時を構築することです。 日付と時刻のさまざまな部分を取得し、たとえば Date MDY + 時刻の計算を使用して JMP の datetime を取得します。 JMPの日時を取得したら、必要に応じてフォーマットできます。
試行錯誤して、最初にスクリプト エディターで正しいパターンを取得することもできます。
Names Default To Here(1);
datetime_str = "03-Mar-22 12.13 PM";
show(datetime_str);
datetime = In Format(
datetime_str,
"Format Pattern",
"<DL><DD>-<MMM>-<YY> <HH>.<MM> <AMPM>"
);
show(datetime);
datestr = Format(datetime, "Format Pattern", "<MM>/</MM></AMPM></MM></HH></YY></MMM></DD><DD>/<YYYY> <HH>:<MM>:<SS> <AMPM>");
show(datestr);
// If I couldn't get Format Pattern fairly quickly, I would just give up and write my own
// parser. Something like this might work
datetime_str = "03-Mar-22 12.13 PM";
months = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
date_str = Word(1, datetime_str);
time_str = Word(2, datetime_str);
ampm_str = Word(3, datetime_str);
day_str = Word(1, date_str, "-");
month_str = Word(2, date_str, "-");
year_str = Word(3, date_str, "-");
day_num = Num(day_str);
month_num = Contains(months, month_str);
year_num = 2000 + Num(year_str);
hour_str = Word(1, time_str, ".");
minute_str = Word(2, time_str, ".");
minute_num= Num(minute_str);
hour_num = Num(hour_str);
If(ampm_str == "AM",
if(hour_num == 12,
hour_num -= 12;
);
, ampm_str == "AM",
if(hour_num == 12,
hour_num = 12
,
hour_num += 12
)
);
date_datetime = Date DMY(day_num, month_num, year_num);
time_datetime = In Hours(hour_num) + In Minutes(minute_num);
final_datetime = date_datetime + time_datetime;
As Date(final_datetime);
<P> </P>
<P>日付と時刻をいじる必要がある場合は、常に ISO 形式の YYYY-MM-DD hh24:mm:ss を使用しようとします。これは、少なくとも機能する可能性があり、運が悪くてもその月がどこにあるかを知っているからです。</P>
<P> </P></AMPM></SS></MM></HH></YYYY></DD></DL>Re: 文字から DateTime への変換のヘルプが必要です動作するように見えるフォーマットの 1 つを次に示します。
monList = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
Informat(
Char( Contains( monList, Word( 2, :Date1.Char, "-" ) ) ) || "/" || Word( 1, :Date1.Char, "-" ) || "/" || Word( 3, :Date1.Char, "-" ),
"m/d/y h:m"
);
上記のJSLは、データの時間領域のピリオドがセミコロンに変更された場合にのみ機能します。
私の提案は使用することです@ブレイディ_ブレイディ以下の解決策。
Re: 文字から DateTime への変換のヘルプが必要ですブレイディ
お久しぶりです、お元気でお過ごしのことと存じます。
あなたの技術ソリューションは、うまく機能したので、確かにうまくいきます。 結局、それはとても簡単でした。
ご支援いただきありがとうございます。
Re: 文字から DateTime への変換のヘルプが必要ですご支援いただきありがとうございます。 これも試してみます-少なくともよりよく学ぶために。
thxまた
Re: 文字から DateTime への変換のヘルプが必要ですあなたのサポートのためのthx txnelson
文字から日時への変換に関するヘルプが必要ですやあ
サンプルの単一行テーブルを添付します。
Date1列は文字です
例えば03-3月-22 午後12時13分
つまり。 DD-MMM-YY HH.MM 午前/午後
Date2 は日時形式です
特に Date1 を希望の形式で DateTime に変換するには、式が必要です。
MM/DD/YYYY HH:MM:SS 午前/午後
(SS、秒は自動的にゼロになります)
私の目標は、2 つの比較可能な日時列ができたら、2 番目の列 (または結合) に基づいてテーブルを更新することです。
注: いくつかの試みを試みましたが、今のところどれもうまくいきません。 助けていただきありがとうございます。
ありがとう
品質およびプロセスエンジニアリング