文字列(エポック時間)を日付に変換する方法を探していました。
1360440555
基本的に、私はこれを(文字列形式で)取得し、これにする必要があります: Feb 9 12:09 2013
。
私はstrptimeとstrftimeを見てきましたが、どちらもうまく機能していないようです。助言がありますか?
編集:ありがとう、みんな。私はそれをintに変換しatoi()
、としてキャストしてtime_t
から実行ctime()
しました。完璧に動作しました!
その値が文字列ではなく整数である場合は、を呼び出すことができますctime
。文字列を整数に変換する方法があれば…。
time_t c;
c = strtoul( "1360440555", NULL, 0 );
ctime( &c );
%s
(GNU拡張子)を使用して、文字列として指定されたPOSIXタイムスタンプを内訳時刻に変換できtm
ます。
#define _XOPEN_SOURCE
#include <stdio.h>
#include <string.h>
#include <time.h>
int main() {
struct tm tm;
char buf[255];
memset(&tm, 0, sizeof(struct tm));
strptime("1360440555", "%s", &tm);
strftime(buf, sizeof(buf), "%b %d %H:%M %Y", &tm);
puts(buf); /* -> Feb 09 20:09 2013 */
return 0;
}
注:ローカルタイムゾーンはUTCです(他のタイムゾーンでは結果が異なります)。