mktime64()- 轉換當地時間
格式
#include <time.h>
time64_t mktime64(struct tm *time);語言層次
ILE C 延伸
安全執行緒
是
區分語言環境
現行語言環境的 LC_TOD 種類可能會影響此函數的行為。
說明
mktime64() 函數會將 time所指向的已儲存 tm 結構 (假設為工作當地時間) 轉換成 time64_t 值,適合與其他時間函數搭配使用。 轉換之後, time64_t 值將被視為「世界標準時間 (UTC)」。 對於此轉換, mktime64() 會檢查當地時區及日光節約時間 (DST) 的現行語言環境設定。 如果未在現行語言環境中設定這些值,則 mktime64() 會從現行工作取得當地時區及 DST 設定。 如果在語言環境中設定 DST ,但未設定時區資訊,則會忽略語言環境中的 DST 資訊。 然後, mktime64() 函數會使用現行工作的時區資訊來決定 UTC。
時間 所指向部分結構元素的值不受限於針對 gmtime64()所顯示的範圍。
傳遞至 mktime64() 的 tm_wday 及 tm_yday 值會被忽略,並在傳回時獲指派其正確值。
tm_isdst 的正或 0 值會導致 mktime() 一開始分別假設 DST 在指定時間是否有效。 tm_isdst 的負值會導致 mktime() 嘗試判定 DST 是否在指定時間有效。
附註: 此函數支援的日期和時間範圍是 0 1/0 1/1 9 7 0 00:00:00 至 1 2/3 1/9 9 9 23:59:59。
回覆值
mktime64() 函數會傳回類型為 time64_t的「世界標準時間 (UTC)」。 如果無法代表「通用座標時間」,或給定的 時間 超出範圍,則會傳回值 (time_t) (-1) 。 如果給定的 時間 超出範圍,則錯誤碼會設為 EOVERFLOW。
範例
此範例會列印從現行日期算起 40 天 16 小時的星期幾。
#include <stdio.h>
#include <time.h>
char *wday[] = { "Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday" };
int main(void)
{
time64_t t1, t3;
struct tm *t2;
t1 = time64(NULL);
t2 = localtime64(&t1);
t2 -> tm_mday += 40;
t2 -> tm_hour += 16;
t3 = mktime64(t2);
printf("40 days and 16 hours from now, it will be a %s \n",
wday[t2 -> tm_wday]);
}
/******************* Output should be similar to: ***************
40 days and 16 hours from now, it will be a Sunday
*/
相關資訊
- asctime ()-將時間轉換為字串
- asctime_r ()-將時間轉換為字串 (可重新啟動)
- ctime ()-將時間轉換為字串
- ctime64()-將時間轉換為字串
- ctime64_r()-將時間轉換為字串 (可重新啟動)
- ctime_r ()-將時間轉換為字串 (可重新啟動)
- gmtime ()-轉換時間
- gmtime64()-轉換時間
- gmtime64_r()-轉換時間 (可重新啟動)
- gmtime_r ()-轉換時間 (可重新啟動)
- localtime ()-轉換時間
- localtime64()-轉換時間
- localtime64_r()-轉換時間 (可重新啟動)
- localtime_r ()-轉換時間 (可重新啟動)
- mktime ()-轉換當地時間
- time ()-判定現行時間
- time64()-判定現行時間
- <time.h>