將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL你好,
我在轉換值時遇到問題,例如
08:49:46 下午
上午 10:30:46
從字符列到數字 h:m:s 24 小時格式。
我想在沒有 JSL 的情況下運行轉換,並且不依賴於操作系統時間格式。
請協助。
問候,
湯姆.
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL該公式在某些條件下失敗:
時間_1: 6/16/2022 11:20:49 上午
時間_2: 6/16/2022 12:45:13 PM
如果我們考慮 Time_1,我們將獲得 --> 6/16/2022 11:20:49
但是,如果我們考慮 Time_2,我們將獲得 --> 7/16/2022 00:45:13 (切換到錯誤的日期)。
有沒有一種簡單的方法可以將 Time_1 或 Time_2 這樣的時間戳轉換為連續的數字而不是字符串?
問候斯文
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL@湯姆_阿布拉莫夫,
你有一個解決方案@多發性硬化症回复。然而,我們要么有非常不同的 JMP 版本,要么我們溝通得不好,所以這是一個僅供參考的回复。
您的屏幕截圖顯示了名義模型,但僅顯示了時間 08:49:46 PM。如果此列是數字,而不是字符信息()將返回一個空值,因為它的參數必須是字符串/字符。因此,指定您的數據是數字還是字符,並/或附上示例數據表非常重要。
如果您的傳入列是日期時間列,只是格式化為時間並且是數字,我建議您使用函數/公式創建一個新列一天中的時間(第 1 欄)然後將該新列格式化為持續時間。即使列的格式只是時間,如果我想查找第 1 行和第 2 行之間的時間,以及剛剛格式為時間的 DateTime 列,它將包含天數,基礎數據仍然是日期時間。
從主菜單中,選擇幫助 > 腳本索引 > 函數 > 日期時間,您可以運行示例腳本來查看每個函數的工作原理,無論其參數是字符串還是數字。這是了解更多信息的簡單方法。 供參考
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL謝謝,用公式就可以了。
可能沒有公式就沒有辦法...回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL可能是“PM”導致它失敗。 信息()如果僅使用字符串的時間部分,例如通過使用左邊()功能並有條件地修正 AM/PM。
試試這個公式:
Informat(Left(:Column 1, 8), "h:m:s") + If(Contains(:Column 1, "AM"), 0, In Hours(12))
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL第 1 列的數據類型是什麼? 我可以看到建模類型是名義上的。 如果第 1 列是數字和名義值,則 Informat 返回空 ()。
如果該列已經是數字,只需將第 1 列的格式更改為持續時間。
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL謝謝你,
我正在使用 JMP 14 Pro。
仍然缺少值 - 請參閱隨附的屏幕截圖。
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL您使用的是哪個版本的 JMP? 有一個版本無法進行就地轉換。
我建議您創建一個新列,並使用函數 Informat( Trim(your_char_column), "h:m:s")。 這應該返回數字,然後將該列的格式更改為持續時間 > 小時:分:秒。 這修剪()函數將刪除空格和其他不可打印的字符。 我希望這有效。
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL謝謝您,但不幸的是,在您提到的更改後我得到了缺失值......
回复:將 AM/PM 時間文本轉換為 24 小時時間格式 - 無 JSL如果您的專欄是字符,那麼您可以通過點擊來完成此操作。 右鍵單擊該列並執行所有這些步驟,然後按“確定”
- 選擇數據類型 > 數字,
- 建模類型>連續,
- 格式 > 持續時間 > 小時:分:秒
如果您不想讓當前列面臨風險,請創建一個連續的數字新列,並使用公式 Informat( char_column, "hr:m:s")。 然後將格式更改為持續時間。