ctimeを使用して10桁のUnixタイムスタンプ(現在は文字列)をフォーマットしようとしています。ctimeでctimeを使用してUnixのタイムスタンプをフォーマットする
しかし、ctime()では、文字列ではなく、time_t型のパラメータが必要です。
私はctimeを使用する前に何をしなければなりませんか? つまり、簡単に文字列をtime_tに変換できますか?
ctimeを使用して10桁のUnixタイムスタンプ(現在は文字列)をフォーマットしようとしています。ctimeでctimeを使用して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型は単なる整数です。エポックからの秒数です。最初に文字列を解析する必要があります。ここ
スタート:
、そこから前方にあなたの方法を動作します。
'strtoull'(オーバーフローをチェック)を使用してください。 –
@ eq-:時刻は符号なし量であり符号なし量ではありません。負の時間は1970年1月1日00:00:00Zより前です(そして、間違いの間にあいまいさが残っています)。 –
@JonathanLeffler、私はそれをとてもよく知っていました。しかし、「10桁」のタイムスタンプといっても(少なくとも、解釈することができる)、範囲を非負のタイムスタンプに制限します。 –