JMP 時間のフォーマット時刻形式を機能させることができません。スクリプトガイドによると、「m/d/yh:m:s」という形式は、12 時間と 24 時間の両方の時間に使用されます。 なんと?どうして、どちらかの答えを勝手に返す関数が必要になるのでしょうか?どうすればこれを機能させることができますか?
time = today(); //3619617166
formattedTime = format(time, "m/d/y h:m:s");
print(formattedTime); //"09/12/2018 5:12:46 PM"
//What I want: "09/12/2018 17:12:46"
スクリプト ガイドには、コンピューターの設定に基づいて 12 時間か 24 時間を選択するような不可解なメモがいくつかありますが、ユーザーのコンピューターの半分でコードが壊れるのを望まないため、これはひどい考えです。
フォーマットが機能しない場合、簡単な回避策はありますか?
Re: JMP 時間のフォーマット私も一緒だよ、クリス。JMP関数は馬鹿げています。時刻形式を AM/PM から 24 時間に変更するためだけにスクリプトを記述する必要はありません。他のスレッドではこれに関する公式が示されていましたが、どれも機能しませんでした。これがドロップダウン リストの標準 JMP 形式であってはいけない理由はありません。 あなたの投稿から 3 年が経過しましたが、JMP からはまだ何もありません。
Re: JMP 時間のフォーマットありがとう。 私はすでにウィッシュリストの項目に投票しました。デフォルトの日付形式は特に好きではないので、組み込み関数として利用できる場合は、間違いなくこの関数を使用するでしょう。何が必要かを理解したので、学習曲線はもう終わり、日付を自由にフォーマットできるようになりました。無限の柔軟性が役に立ちます。しかし、プログラマではない Excel ユーザーにこれらすべてを説明しようとすると、白い目で見られるでしょう。Excel が少なくとも 1997 年から "ddd hh:mm" の日付形式を受け入れることができるようになったとすると、非常に複雑に思えます。
Re: JMP 時間のフォーマットこんにちは@Chris_Rodrigues 、
以下の機能を見て、気に入ったら、そのアイデアに投票してください。 JMPウィッシュリストはこちら。私はいつもこのようなものを使っているので、組み込み関数として利用できるようにしてほしいと思っています。
Names default to here(1);
time = 3619617166;
pad = function( {x}, if(x < 10, "0" || char( x ), char( x )));
formatdatetime = function({time, pattern, prepend=""},
char(substitute(pattern,
prepend || "H", pad(hour(time, 24)),
prepend || "h", pad(hour(time, 12)),
prepend || "M", pad(minute(time)),
prepend || "S", pad(second(time)),
prepend || "m", pad(month(time)),
prepend || "d", pad(day(time)),
prepend || "y", char(year(time)),
prepend || "AP", char(if(hour(time)==24, "AM", if(hour(time, 24)>11,"PM","AM"))),
// the rest of the formatting options..Month name,
// short month name, hours without padding, etc
))
);
formatdatetime(time, "m/d/y h:M:S AP");
// 09/12/2018 05:12:46 PM
formatdatetime(time, "ymd_HMS");
// 20180912_171246
formatdatetime(time, "hour = %h, minute = %M", "%")
// hour = 05, minute = 12Re: JMP 時間のフォーマット私のチャートでは、X 軸のラベル スペースをできるだけ効率的に使用したかったので、年や秒数などは必要ありませんでした。「Mon 18:00」で十分です。最初は、Format() 関数でこれを簡単に実行できるのではないかと思いましたが、最終的には次のようにしました。
Names Default To Here( 1 );
pad = Function( {x}, If( x < 10, "0" || Char( x ), Char( x ) ) );
Char( Match( Day Of Week( :value ), 1, "Sun", 2, "Mon", 3, "Tue", 4, "Wed", 5, "Thu", 6, "Fri", 7, "Sat" ) ) || " " || pad( Hour( :value, 24 ) ) ||
":" || pad( Minute( :value ) );そしてこれが結果です:

Re: JMP 時間のフォーマットもぜひご覧ください[ヘルプ] > [JMP ドキュメント ライブラリ] > [スクリプト ガイド] 「」で検索してくださいカスタム関数。」 JMP 15.1 リリースの情報は 393 ページから始まります。 ここでは、カスタム変換とカスタム形式も見つかります。 これらの定義は、JMP UI で対話的に使用することもできます。
Re: JMP 時間のフォーマットチャート上で日付形式を希望どおりに表示する方法を見つけようとして、ウサギの穴に陥ったところです。こんなに大変だとは思ってもいませんでした。したがって、文字ごとに構築し、時/分/秒の先頭にゼロを埋め込む独自の関数をロールする必要があります。素晴らしい。ありがとう@ih先端用に。
Re: JMP 時間のフォーマット結局、これを JMP ウィッシュリストに追加しました。
https://community.jmp.com/t5/JMP-Wish-List/JMP-Time-Formatting-12-v-24-hr-control/idi-p/74643#M336
Re: JMP 時間のフォーマットありがとう@ih ;それは適切な回避策です。1 つ注意してください。時間を 24 時間に強制するには、hour(time, 24) を入力する必要があると考えてください。デフォルトは 24 時間になっているようですが、ドキュメントを見ると、デフォルトを 12 時間に設定したいように感じられます。
//My update: (just slightly shorter)<BR /><BR />format(time, "m/d/y") || " " || pad(hour(time, 24)) || ":" || pad(minute(time)) || ":" || pad(second(time));
また、カスタマイズ可能な書式文字列のソリューションがあることを願っています。来週中にこれより良い回答が見つからない場合は、そのリクエストを JMP ウィッシュ リストに追加します。JMP の誰かが返信してくれることを願っています。
Re: JMP 時間のフォーマット私はよくこんなものを使ってしまいます。
names default to here(1);
time = 3619617166;
pad = function( {x}, if(x < 10, "0" || char( x ), char( x )));
pad(month(time)) || "/" || pad(day(time))|| "/" || char(year(time)) || " " ||
pad(hour(time)) || ":" || pad(minute(time)) || ":" || pad(second(time));
// "09/12/2018 17:12:46"カスタマイズ可能な形式文字列を使用してソリューションに +1 します。