AM/PM 時刻テキストを 24 時間形式に変換 - JSL なしやあ、
次のような値を変換するのに問題があります
午後8時49分46秒
午前10時30分46秒
文字列から数値 h:m:s 24 時間形式へ。
JSL を使用せず、オペレーティング システムの時刻形式に依存せずに変換を実行したいと考えています。
手伝ってください。
よろしく、
トム。
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なしこの式は、特定の条件では失敗します。
時間_1: 2022/6/16 11:20:49 AM
時間_2: 2022/6/16 12:45:13 PM
Time_1 を考慮すると得られます --> 6/16/2022 11:20:49
ただし、Time_2 を考慮すると、 --> 7/16/2022 00:45:13 (間違った日に切り替え) が得られます。
Time_1 や Time_2 のようなタイムスタンプを文字列ではなく連続数値に変換する簡単な方法はありますか?
よろしくスヴェン
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なし@tom_abramov 、
からの解決策があります@MS応答。ただし、JMP のバージョンが大幅に異なっているか、通信がうまくできていないため、これは参考までに回答します。
スクリーンショットには名目上のモデリングが示されていますが、時刻は午後 8 時 49 分 46 秒だけが表示されています。この列が文字ではなく数値の場合インフォーマット()引数は文字列/文字である必要があるため、空を返します。したがって、データが数値であるか文字であるかを指定するか、サンプル データ テーブルを添付することが重要です。
受信列が時刻としてフォーマットされただけの DateTime 列であり、数値である場合は、関数/式を使用して新しい列を作成することをお勧めします。時刻(列 1)次に、その新しい列を期間としてフォーマットします。列が時間のみとして書式設定されている場合でも、たとえば行 1 と行 2 の間の時間を検索し、時間として書式設定されただけの DateTime 列には日数が含まれる場合でも、基になるデータは datetime のままです。
メイン メニューから、[ヘルプ] > [スクリプト インデックス] > [関数] > [日付時刻] を選択します。引数が文字列か数値かにかかわらず、各関数がどのように機能するかを確認するために実行できるサンプル スクリプトがあります。これは、さらに詳しく学ぶための簡単な方法です。 ご参考までに
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なしありがとうございます、数式で大丈夫です。
おそらく公式なしでは方法はありません...Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なしおそらく失敗の原因は「PM」です。 インフォーマット()文字列の時間部分のみを使用する場合、たとえば、左()機能があり、条件付きで AM/PM を修正します。
次の式を試してください。
Informat(Left(:Column 1, 8), "h:m:s") + If(Contains(:Column 1, "AM"), 0, In Hours(12))
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なし列 1 のデータ型は何ですか? モデリング タイプが公称であることがわかります。 列 1 が数値および公称の場合、Informat は empty() を返します。
列がすでに数値である場合は、列 1 の形式を期間に変更するだけです。
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なしありがとう、
JMP14プロを使用しています。
まだ欠損値が得られます - 添付のスクリーンショットを参照してください。
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なしJMP のどのバージョンを使用していますか? 適切な変換が機能しないバージョンが 1 つありました。
新しい列を作成し、関数 Informat( Trim(your_char_column), "h:m:s") を使用することをお勧めします。 これにより数値が返され、その列の形式が [Duration] > [hr:m:s] に変更されます。 のトリム()この関数はスペースやその他の印刷できない文字を削除します。 それがうまくいくことを願っています。
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なしありがとうございます。残念ながら、あなたが言及した変更の後、欠損値が発生します...
Re: AM/PM 時刻テキストを 24 時間形式に変換する - JSL なし列が文字の場合は、ポイント ワン クリックでこれを行うことができます。 列を右クリックし、「OK」を押す前にこれらの手順をすべて実行します。
- [データ型] > [数値] を選択します。
- モデリング タイプ > 連続、
- 形式 > 長さ > 時:分:秒
現在の列を危険にさらしたくない場合は、数値で連続した新しい列を作成し、式 Informat( char_column, "hr:m:s") を使用します。 次に、形式を「Duration」に変更します。