1. 程式人生 > >time_t資料型別表示的最遲時間

time_t資料型別表示的最遲時間

一、基本系統資料型別-time_t

在unix/linux系統中,時間的表示方法是以1970年1月1日00:00:00所經過的秒數,使用基本系統資料型別time_t表示,在/usr/include下查詢time_t型別的定義.

1. sys/types.h

#define __need_timer_t

#define __need_clockid_t

#include <time.h>

2.time.h

typedef __time_t time_t;

# include <bits/types.h>        /* This defines __time_t for us.  */

3.bits/types.h

__STD_TYPE __TIME_T_TYPE __time_t;      /* Seconds since the Epoch.  */

# define __STD_TYPE             __extension__ typedef

4.bits/typesizes.h

#define __TIME_T_TYPE           __SLONGWORD_TYPE

5. bits/types.h

#define __SLONGWORD_TYPE        long int

這裡,基本就可以得出結論了:

__extension__ typedef long int time_t

則time_t型別的變數最大值為0x7fffffff

二、測試

 

執行結果

$ ./time_t

Cur time: cur_time=0x4c42b40a

        Local: Sun Jul 18 15:58:02 2010

        GMT  : Sun Jul 18 07:58:02 2010

Max time: max_time=0x7fffffff

        Local: Tue Jan 19 11:14:07 2038

        GMT  : Tue Jan 19 03:14:07 2038

New time: new_time=0x80000000

        Local: Sat Dec 14 04:51:44 1901

        GMT  : Fri Dec 13 20:45:52 1901

從結果得出,32位的time_t最遲能表示到2038年1月19日 11:14:07(Asia/Shanghai時間) 或2038年1月19日 03:14:07(GMT時間),再過1秒,time_t資料將變為負數,變為1901年12月14日 04:51:44(本地時間),或1901年12月13日 20:45:52(GMT時間).

相關推薦

time_t資料型別表示時間

一、基本系統資料型別-time_t 在unix/linux系統中,時間的表示方法是以1970年1月1日00:00:00所經過的秒數,使用基本系統資料型別time_t表示,在/usr/include下查詢time_t型別的定義. 1. sys/types.h #defi

MySQL 中你應該使用什麼資料型別表示時間

導讀 當你需要儲存日期時間資料時,一個問題來了:你應該使用 MySQL 中的什麼型別?使用 MySQL 原生的 DATE 型別還是使用 INT 欄位把日期和時間儲存為一個純數字呢? 在這篇文章中,我將解釋 MySQL 原生的方案,並給出一個最常用資料型別的對比表。我們也

IOS開發時間格式轉換之──C語言中time_t資料型別轉為NSString型別

既然time_t實際上是長整型,到未來的某一天,從一個時間點(一般是1970年1月1日0時0分0秒)到那時的秒數(即日曆時間)超出了長整形所能表示的數的範圍怎麼辦?對time_t資料型別的值來說,它所表示的時間不能晚於2038年1月18日19時14分07秒。為了能夠表示更久遠的時間,一些編譯器廠商引入了64位

Java8-轉為流為基本資料型別大值、小值、平均值、求和、計數

基本資料型別在高階函式中的運用 眾所周知,在Java中使用基本資料型別的效能和產效率遠高於包裝型別。由於裝箱型別是物件,因此在記憶體中存在額外開銷。比如,整型在記憶體中佔用4 位元組,整型物件卻要佔用 16 位元組。這一情況在陣列上更加嚴重,整型陣列中的每個元素

mysql 資料型別大值 和 小值)

1、整型 MySQL資料型別    含義(有符號) tinyint(m)    1個位元組  範圍(-128~127) smallint(m)    2個位元組  範圍(-32768~32767) mediumint(m)    3個位元組  範圍(-8388608

Java基本資料型別大值和小值。

short 基本型別:short 二進位制位數:16 包裝類:java.lang.Short 最小值:Short.MIN_VALUE=-32768 (-2的15此方) 最大值:Short.MAX_VALUE=32767 (2的15次方-1) int 基本型別:int 二進位制位數

各種資料型別儲存大值

int和long都是用32位來儲存最大值和最小值分別2147483647(109), -2147483648; long long 是用64位來儲存最大值和最小值分別為9223372036854775807(1018),-9223372036854775808; fl

利用位運算計算某種資料型別大值和小值

常見數值的補碼  數值 補碼  0 0000 0000  1 0000 0001   -1 1111 1111 -256 1000 0000   255 0111 1111 最高位是符號位,0表示正數,1表示負數

死磕以太坊原始碼分析之EVM固定長度資料型別表示

> 死磕以太坊原始碼分析之EVM固定長度資料型別表示 > > 配合以下程式碼進行閱讀:https://github.com/blockchainGuide/ > > 寫文不易,給個小關注,有什麼問題可以指出,便於大家交流學習。 > > 翻譯自 https://medi

資料結構與演算法隨筆之------AOE網活動的早、發生時間及關鍵路徑問題

上個學期學資料結構的時候有學到,這學期的離散數學又要考。。複習複習 有向圖中,用頂點表示事件,用有向邊表示活動之間開始的先後順序,則稱這種有向圖為AOV(Activity On Vertex)網路;AOV網路可以反應任務完成的先後順序(拓撲排序)。 在AOV網的邊上加上權值表示完成該活動所需

深入瞭解以太坊虛擬機器第2部分——固定長度資料型別表示方法

在本系列的第一篇文章中,我們已經看到了一個簡單的Solidity合約的彙編程式碼: contract C { uint256 a; function C() { a = 1; } } 該合約歸結於sstore指令的呼叫: // a = 1 sstore(0x0,

深入瞭解以太坊虛擬機器第3部分——動態資料型別表示方法

Solidity提供了在其他程式語言常見的資料型別。除了簡單的值型別比如數字和結構體,還有一些其他資料型別,隨著資料的增加可以進行動態擴充套件的動態型別。動態型別的3大類: 對映(Mappings):mapping(bytes32 => uint256), mapping(addres

JS幾種資料型別轉換(全)

一、轉為字串:使用 .toString或者String。 1、 .toString()方法:注意,不可以轉null和underfined //轉為字串-->toString方法 var bool=true; console.log(bool.toString()); //注意,toSt

基本資料型別的包裝類(wrapper class)、時間處理相關類、Math類、File類、列舉類

包裝類(wrapper class)   --基本資料型別對應的類統稱為包裝類(Wrapper Class)。包裝類均位於java.lang包,包裝類和基本資料型別的對應關係如下表所示: 基本資料型別 包裝類 byte Byte

AOE網活動的早、發生時間及關鍵路徑問題

上個學期學資料結構的時候有學到,這學期的離散數學又要考。。複習複習 有向圖中,用頂點表示事件,用有向邊表示活動之間開始的先後順序,則稱這種有向圖為AOV(Activity On Vertex)網路;AOV網路可以反應任務完成的先後順序(拓撲排序)。 在AOV網的邊上加上權值表示完成該活動

前臺獲取後臺傳回的json格式資料,日期格式是時間戳long型別的問題

為了獲得的是2020-12-12 12-12-12這種格式,如下做: @ResponseBody public List<User> getUsers(){ List<User> users = ... return users

易學筆記-go語言-第4章:基本結構和基本資料型別/4.4 變數/4.4.3 函式體內簡單的變數初始化

函式體內最簡單的變數賦值 格式:  變數名 := 值 舉例: var goos string = os.Getenv("GOOS") fmt.Printf("The operating system is: %s\n", goos) //函式體內最

【圖(上)】什麼是圖,抽象資料型別,怎麼表示一個圖

什麼是圖 表示“多對多”的關係 包含 一組頂點:通常用V (Vertex) 表示頂點集合 一組邊:通常用E (Edge) 表示邊的集合 邊是頂點對:

JS中基本資料型別和引用型別根本的區別

前言 JS中的型別只有6種,其中基本資料型別有5種分別為string,number,boolen,null,undefined,引用型別有一種,就是object,object是一個大的綜合體,在JS中除了那5個基本資料型別以外,其他的一切皆物件。 正文 兩個對比的例

MySQL資料型別 -- 日期時間

在MySQL關係型資料庫中,MySQL支援的資料型別非常豐富。它主要分為3大類,即:數值型,日期時間性,字元型。而實際上這三類資料型別可以進一步的細分擴充套件,可以根據業務需要選擇最適合的一種。本文主要介紹日期時間型別,並演示其用法。 一、日期時間型 MySQL