時間のあるInformat(ParseDate)関数やあ、
Informat関数(またはそのエイリアスParseDate)について質問があります。 日付と時刻の情報を含む文字列があり、JMP15.2.0で日付を解析しようとした場合。
str="2022-10-22 16:25:37";
datetime= Informat( str, "yyyy-mm-dd HH:mm:ss" );
show(type(datetime));
show(datetime);
日時の設定(Win 10)に応じて、さまざまな種類の出力が出力されます。
地域フォーマット英語(イギリス):
str = "2022-10-22 16:23:37";
Type(datetime)="日付";
日時=22Oct2022:16:23:37;
または地域形式フィンランド語(フィンランド):
str = "2022-10-22 16:23:37";
Type(datetime)="数値";
日時=。;
時間も解析できる関数はありますか? または、これをどのように行うことができるかについての提案はありますか?
スクリプティングウィンドウズRe:時間のあるInformat(ParseDate)関数<< Use Locale()を使用すると役立つかどうかを確認してください。
JMPは、JMP16より前の時間(および日付)の管理がかなり苦手でした。 ほとんどの場合、文字列を年、月、日、時、分、秒に解析します。 次に、それらを合計してdate_timeを取得します。 JMP16を使用すると、ほとんどの場合、フォーマットパターンを使用できます。
多分これはいくつかのアイデアを与えることができます:
Names Default To Here(1);
str = "2022-10-22 16:25:37";
date = Word(1, str, " ");
time = Word(2, str, " ");
y = Num(Word(1, date, "-"));
m = Num(Word(2, date, "-"));
d = Num(Word(3, date, "-"));
time_separator = Left(Regex(Format(Today(), "h:m:s"), "\d", "", GLOBALREPLACE), 1);
hh = Num(Word(1, time, time_separator));
mm = Num(Word(2, time, time_separator));
ss = Num(Word(3, time, time_separator));
date_time = Date DMY(d, m, y) + hh * 60 * 60 + mm * 60 + ss;
AsDate(date_time);
Re:時間のあるInformat(ParseDate)関数これが問題を処理する1つの方法です
str="2022-10-22 16:25:37";
datetime = datemdy(num(word(2,str," -:")),
num(word(3,str," -:")),
num(word(1,str," -:")) ) +
3600*num(word(4,str," -:")) +
60 * num(word(5,str," -:")) +
num(word(6,str," -:")
);
show(format(datetime,"m/d/y h:m:s"));
ログに表示されます
Format(datetime, "m/d/y h:m:s") = "10/22/2022 4:25:37 PM";
Re:時間のあるInformat(ParseDate)関数利用した<< Locale()を使用して、日付と時刻の形式に関する問題を解決します。 あなたが提供した例は問題を解決しませんでした、私は時間があれば(しゃれを意図して)後でこれに戻ると思います。 この例の問題は、おそらく<< Use Locale()で解決されます。新しいバージョンのJMPを入手した場合は、フォーマットパターンも試してみます。
知識を共有していただきありがとうございます。