2012-09-05 43 views
6

我想使用ctime格式化一個10位數的Unix時間戳記(當前是一個字符串)。使用ctime在c中格式化Unix時間戳記

但是,ctime()需要一個類型爲time_t的參數,而不是一個字符串。

我可以使用ctime之前必須做什麼? 換句話說,我可以輕鬆地將字符串轉換爲time_t嗎?

+0

使用'strtoull'(檢查溢出)。 –

+0

@ eq-:時間是有符號數量,不是未簽名的。負面的時間是在1970年1月1日00:00:00之前(是的,這會在錯誤之間留下一個模棱兩可的問題,並在The Epoch前一秒)。 –

+0

@JonathanLeffler,我很清楚這一點。但是,說到「10位數」的時間戳,確實(或者至少可以解釋爲)將範圍限制爲非負的時間戳。 –

回答

9

你在說你有一些像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