优秀的手机游戏下载!
首页 localtime

localtime

发布时间:2024-08-19 08:36:53 编辑:手游哥 浏览:332

perl下time函数会返回一个十位的时间戳,精确到秒,看起来像这个样子(1180630098)。这个数字是从1900年到当前时间的秒数。但你并看不出是什么意思。所以需要转换形式,转换成‘Thu May 31 09:48:18 2007’这样的字符串。Perl可以在标量上下文中使用localtime函数完成这种转换。

在列表下文中,localtime会返回一个数字元素组成的列表:

列表中各元素的含义如下:

注:默认情况(不传参时)下使用time函数的返回值作为参数:

gtime函数与localtime函数一样,但返回的值为本地化的格林尼治标准时区(GMT)时间。

默认情况(不传参时)下使用time函数的返回值作为参数:

注意:在列表上下文中调用时,$ isdst,gmtime返回的最后一个值始终是0 。GMT没有夏令时。

C++的time和localtime的函数 怎么用?

1、localtime是把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间,而gmtime函数转换后的时间没有经过时区变换,是UTC时间。2、说明:此函数获得的tm结构体的时间是日历时间。3、用法:structtm*localtime(consttime_t*clock)4、返回值:返回指向tm结构体的指针.tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.5、范例

为什么localtime函数返回的指针不需要释放

1.

time

函数

返回1970-1-1,

00:00:00以来经过的秒数

原型:

time_t

time(time_t

*calptr)

结果可以通过返回值,也可以通过参数得到,见实例

头文件

&lttime.h&gt

返回值:

成功:秒数,从1970-1-1,00:00:00

可以当成整型输出或用于其它函数

失败:-1

例:

time_t

now

time(&ampnow)//

等同于now

=

time(NULL)

printf(\”now

time

is

%d\\n\”,

now)

2.

localtime函数

将时间数值变换成本地时间,考虑到本地时区和夏令时标志

原型:

struct

tm

*localtime(const

time_t

*

calptr)

头文件

&lttime.h&gt

 返回值:

成功:

struct

tm

*结构体,

原型如下:

struct

tm

{

int

tm_sec

/*

取值区间为[0,59]

*/

int

tm_min

/*

取值区间为[0,59]

*/

int

tm_hour

/*

localtime

取值区间为[0,23]

*/

int

tm_mday

/*

一个月中的日期

取值区间为[1,31]

*/

int

tm_mon

/*

月份(从一月开始,0代表一月)

取值区间为[0,11]

*/

int

tm_year

/*

年份,其值等于实际年份减去1900

*/

int

tm_wday

/*

星期

取值区间为[0,6],其中0代表星期天,1代表星期一

*/

int

tm_yday

/*

从每年1月1日开始的天数–

取值区间[0,365],其中0代表1月1日

*/

int

tm_isdst

/*

夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0

*/

}

此结构体空间由内核自动分配,

而且不要去释放它.

失败:

NULL

例:

time_t

now

struct

tm

*tm_now

time(&ampnow)

tm_now

=

localtime(&ampnow)

printf(\”now

datetime:

%d-%d-%d

%d:%d:%d\\n\”,

tm_now-&gttm_year+1900,

tm_now-&gttm_mon+1,

tm_now-&gttm_mday,

tm_now-&gttm_hour,

tm_now-&gttm_min,

tm_now-&gttm_sec)

以上只在linux环境下通过,

C/C++通用,

WINDOWS不清楚是否不同。这两个是标准C的函数,应该不会相差太大。

为什么localtime线程不安全

localtime返回的结果,其实指向的是一个静态变量,全局共享,不需要释放。

这样的例子有很多,比如strerror之类的函数,返回错误字符串也不需要释放,也是一样机制。

从localtime函数的原型定义分析

struct tm *localtime(const time_t *timep)

localtime函数返回了一个struct tm指针,函数的说明中并未要求调用者将该指针free掉,证明tm对象并非是malloc或new出来的。那么tm一定是个全局变量或者是localtime函数中的局部静态变量。

这样的变量在多线程访问时会出问题,第一个线程在localtime返回之前首先改变了这个变量的值,第二个线程又进来改变这个变量,以此类推。这样第一个线程在真正返回时该值已经被多次改变,这是典型的函数重入问题。

因此localtime函数线程不安全。

以上就是关于localtime 与 gtime 函数全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

perl下time函数会返回一个十位的时间戳,精确到秒,看起来像这个样子(1180630098)。这个数字是从1900年到当前时间的秒数。但你并看不出是什么意思…
查看详情
perl下time函数会返回一个十位的时间戳,精确到秒,看起来像这个样子(1180630098)。这个数字是从1900年到当前时间的秒数。但你并看不出是什么意思…
查看详情
perl下time函数会返回一个十位的时间戳,精确到秒,看起来像这个样子(1180630098)。这个数字是从1900年到当前时间的秒数。但你并看不出是什么意思…
查看详情
相关资讯
猜你喜欢