你好,
我有一個數據集以這種格式報告一個單元格內的日期和時間:“12.08.2022 15:46:43 GMT-0700”(日期格式為 dd.mm.yyyy)。我想為日期創建一列,為時間創建一列(我假設時間是當地時間,而 GMT-0700 只是表示這是當地時間。 所以對於每個單元格,我想要兩列:
第 1 列:日期格式:dd.mm.yyyy
第 2 列:時間格式 15:46:43
我嘗試過的不同方法似乎不太奏效,我想知道這是否是由於月/日/年值之間的時間段所致?
謝謝,
羅伯特
使用 JMP 16。
如果你到了你的本地假設不正確的地步。將時間放在 UTC 中可能是值得的。
Names default to here(1);
dt = New Table( "Untitled", Add Rows( 1 ),
New Column( "stamp", Character, "Nominal", Set Values( {
"12.08.2022 15:46:43 GMT-0700",
"14.08.2022 15:46:43 GMT-0730" // just to show half hour time zones
} ) )
);
dt << New Column("DT UTC", Format( "yyyy-mm-ddThh:mm:ss" ), formula(
timezone_offset = Num( Substr( :stamp, 24, 3 ) ) + Num( Substr( :stamp, 27, 2 ) ) / 60; // get the timezone offset
Informat( Substr( :stamp, 1, 19 ), "d/m/y H:m:s" ) - timezone_offset * 3600; // turn from local to UTC
));謝謝克雷奇。 這完全有效。 你說得對,現在我確實想在一個單元格中顯示時間和日期。
dt = New Table( "Untitled", Add Rows( 1 ), New Column( "stamp", Character, "Nominal", Set Values( {"12.08.2022 15:46:43 GMT-0700"} ) ) );
dt << New Column( "time", Format( "H:m:s" ), formula( Informat( Substr( stamp, 12, 8 ), "h:m:s" ) ) );
dt << New Column( "date", Format( "d/m/y" ), formula( Informat( Substr( stamp, 1, 10 ), "d/m/y" ) ) );
dt << New Column( "datetime1", Format( "d/m/y H:m:s" ), formula( Informat( Substr( stamp, 1, 19 ), "d/m/y H:m:s" ) ) );
dt << New Column( "datetime2", Format( "yyyy-mm-ddThh:mm:ss" ), formula( Informat( Substr( stamp, 1, 19 ), "d/m/y H:m:s" ) ) );
Column formulas extract dates, times, and datetimes.Column formulas extract dates, times, and datetimes.列公式提取日期、時間和日期時間。
通常您需要一個日期時間列,而不是單獨的日期和時間列。
編輯:我不確定格式記錄在哪裡;我製作了一個小型數據表,使用列屬性來選擇/測試格式,然後將表腳本保存到腳本窗口以獲取格式名稱。