2

文字列(エポック時間)を日付に変換する方法を探していました。

1360440555基本的に、私はこれを(文字列形式で)取得し、これにする必要があります: Feb 9 12:09 2013

私はstrptimeとstrftimeを見てきましたが、どちらもうまく機能していないようです。助言がありますか?

編集:ありがとう、みんな。私はそれをintに変換しatoi()、としてキャストしてtime_tから実行ctime()しました。完璧に動作しました!

4

2 に答える 2

6

その値が文字列ではなく整数である場合は、を呼び出すことができますctime。文字列を整数に変換する方法があれば…。

time_t c;
c = strtoul( "1360440555", NULL, 0 );
ctime( &c );
于 2013-02-09T23:19:07.267 に答える
3

%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です(他のタイムゾーンでは結果が異なります)。

于 2013-02-09T23:53:22.417 に答える