[英]convert time from int in c
如果我在c中有一個代表日期的整數,如何打印實際的mm / dd / year?
代表自1601年1月1日(UTC)起100納秒間隔的數量的64位值
1183042181
如果我使用的是32位系統,並且必須從文件中讀取整數怎么辦?
C不是C ++
C的庫包含strftime函數,該函數將使用指定的格式字符串格式化struct tm。 當然,從那里您可以打印它。 所以:
閱讀“ MSDN”部分:
備注
要將FILETIME結構轉換為易於顯示給用戶的時間,請使用FileTimeToSystemTime函數。
將時間放入struct tm
然后調用strftime()
。
全部在<time.h>中聲明。
您可以使用此例程將64位值轉換為time_t結構
time_t FileTimeToUnixTime(FILETIME& ft)
{
ULARGE_INTEGER li;
assert(sizeof(ULARGE_INTEGER) == sizeof(FILETIME));
memcpy(&li, &ft, sizeof(FILETIME));
li.QuadPart -= 116444736000000000;
li.QuadPart /= 10000000;
return (time_t)(li.LowPart);
}
當然,這僅在您的FILETIME確實在time_t范圍內時才有效。 我想您知道如何處理生成的time_t。
32位系統不會阻止您將64位讀取為二進制值。 如果您喜歡scanf,則可以使用“%llu”格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.