2012-09-05 18 views
6

ctimeを使用して10桁のUnixタイムスタンプ(現在は文字列)をフォーマットしようとしています。ctimeでctimeを使用してUnixのタイムスタンプをフォーマットする

しかし、ctime()では、文字列ではなく、time_t型のパラメータが必要です。

私はctimeを使用する前に何をしなければなりませんか? つまり、簡単に文字列をtime_tに変換できますか?

+0

'strtoull'(オーバーフローをチェック)を使用してください。 –

+0

@ eq-:時刻は符号なし量であり符号なし量ではありません。負の時間は1970年1月1日00:00:00Zより前です(そして、間違いの間にあいまいさが残っています)。 –

+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 
関連する問題