我想使用ctime格式化一個10位數的Unix時間戳記(當前是一個字符串)。使用ctime在c中格式化Unix時間戳記
但是,ctime()需要一個類型爲time_t的參數,而不是一個字符串。
我可以使用ctime之前必須做什麼? 換句話說,我可以輕鬆地將字符串轉換爲time_t嗎?
我想使用ctime格式化一個10位數的Unix時間戳記(當前是一個字符串)。使用ctime在c中格式化Unix時間戳記
但是,ctime()需要一個類型爲time_t的參數,而不是一個字符串。
我可以使用ctime之前必須做什麼? 換句話說,我可以輕鬆地將字符串轉換爲time_t嗎?
你在說你有一些像1346426869這樣的字符串,並希望它是一個time_t?
time_t raw_time = atoi("1346426869");
printf("current time is %s",ctime(&raw_time));
> current time is Fri Aug 31 11:27:49 2012
time_t類型只是一個整數。這是自Epoch以來的秒數。你需要首先解析字符串。
從這裏開始:
,並從那裏工作的方式前進。
使用'strtoull'(檢查溢出)。 –
@ eq-:時間是有符號數量,不是未簽名的。負面的時間是在1970年1月1日00:00:00之前(是的,這會在錯誤之間留下一個模棱兩可的問題,並在The Epoch前一秒)。 –
@JonathanLeffler,我很清楚這一點。但是,說到「10位數」的時間戳,確實(或者至少可以解釋爲)將範圍限制爲非負的時間戳。 –