2017-04-01 26 views
0

Cを使用して現在の日付と時間を取得する必要があります。ただし、16進数形式にする必要があります。進にタイムスタンプを返すか、私は、日付と時刻を取得し、HEXに変換する必要があります彼らの機能はありますか?もしそうなら、誰もがCでの変換のための例がありますか?Cで16進数で日付と時刻を取得する方法

+1

。符号なしの値とどのような形式であなたが選択した印刷では? –

+0

日付/時間のために少し需要が六角である:) DIYの仕事になるだろう、私は怖い... – ThingyWotsit

答えて

2

構造体へのポインタをlocaltime()で取得し、フィールドから必要な値を取得できます。その後、時刻文字列を構築するためにsprintf()を使用することができます。

#include <stdio.h> 
#include <time.h> 

int main(void) 
{ 
    time_t raw_time = time(NULL); 
    struct tm *curr = localtime(&raw_time); 

    int year = curr->tm_year + 1900; 
    int month = curr->tm_mon + 1; 
    int day = curr->tm_mday; 

    int hour = curr->tm_hour; 
    int min = curr->tm_min; 
    int sec = curr->tm_sec; 

    char time_str[40]; 
    sprintf(time_str, "%#x/%#x/%#x %#x:%#x:%#x", 
      year, month, day, hour, min, sec); 

    puts("Hex timestamp:"); 
    puts(time_str); 

    sprintf(time_str, "%d/%d/%d %d:%d:%d", 
      year, month, day, hour, min, sec); 

    putchar('\n'); 
    puts("Decimal timestamp:"); 
    puts(time_str); 

    return 0; 
} 

出力例:時間 `のリターン(NULL)を`保存と間違っている何

Hex timestamp: 
0x7e1/0x3/0x1f 0x14:0x2d:0x28 

Decimal timestamp: 
2017/3/31 20:45:40 
+0

パーフェクト!正確に私が必要としたもの。よくできました。 – Eddie

+1

ああ、それは良いことです。さて次の偉大な流行への道に! - ***六角時計***私は解決策が好き。 –

関連する問題