我有一個時間戳,格式如下,后綴為Z:
"2022-03-01T00:00:00Z"
我想以數字檢索日期和以分鐘為單位的時間(應該從上面的示例回傳 0)。
我嘗試執行以下代碼,但我的輸出只檢索年月日而不是時間格式。
time_stamp <- as.POSIXct(participant1_data$timestamp[1], format="%Y-%m-%dT%H:%M")
str(time_stamp)
Output: POSIXct[1:1], format: "2022-03-01"
不檢索時間格式的代碼有什么問題嗎?
uj5u.com熱心網友回復:
如評論中所述,請使用
tz="UTC",否則“Z” == UTC (zulu) 資訊會丟失,另請參閱此答案。如果時間正好是午夜,則省略輸出。
as.POSIXct('2022-03-01T00:00:00Z', tz="UTC", "%Y-%m-%dT%H:%M:%OSZ")
# [1] "2022-03-01 UTC"
as.POSIXct('2022-03-01T11:11:11Z', tz="UTC", "%Y-%m-%dT%H:%M:%OSZ")
# [1] "2022-03-01 11:11:11 UTC"
- 您現在已經正確閱讀了時間并
"POSIXct"上課了。要從中獲得不同的輸出,您需要將其格式化為具有所需格式的字符,使用該格式strftime可以指定正確的時區tz=,例如"CET".
strftime(as.POSIXct('2022-03-01T00:00:00Z', tz="UTC", "%Y-%m-%dT%H:%M:%OSZ"),
'%F %R', tz='CET')
# [1] "2022-03-01 01:00"
strftime(as.POSIXct('2022-03-01T11:11:11Z', tz="UTC", "%Y-%m-%dT%H:%M:%OSZ"),
'%F %R', tz='CET')
# [1] "2022-03-01 12:11"
或者,如果我正確理解“數字的日期和分鐘的時間”,您可能想要這個:
strftime(as.POSIXct('2022-03-01T11:11:11Z', tz="UTC", "%Y-%m-%dT%H:%M:%OSZ"),
'%d %M', tz='CET')
# [1] "01 11"
在 R 控制臺中鍵入help('strftime')或短接并閱讀幫助頁面以獲取可能的輸入/輸出選項。?strftime
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479132.html
