localtime函数用法,timelocaltime的用法

http://www.itjxue.com  2023-01-15 13:17  来源:未知  点击次数: 

Perl中处理时间的几个函数

1、time函数:返回从1970年1月1日起累计的秒数

使用:my $t=time();

2、 localtime函数:获取本地时区时间

使用:my $t=localtime(time());

3、gmtime函数: 获取格林威治时间

使用:my $t=gmtime(time());

得到格式化时间(以localtime函数为例):

my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());

$sec:秒

$min:分

$hour:小时

$mday:日

$mon:月

$year:目前的年减去1990,不是仅将19xx年的19去掉,因此不会有Y2K的困扰。

$wday:每周的日期(如Sunday是0)

$yday:每年的日期(如Jan 1是0)

$isdst:如果日光节约时间使用则是正值,其它为0。

4、POSIX 函数 strftime() 可以将时间格式化为我们想要的格式。

#!/usr/bin/perl

use?POSIX?qw(strftime);

?

$datestring?=?strftime?"%Y-%m-%d?%H:%M:%S",?localtime;

printf("时间日期?-?$datestring\n");

?

#??GMT?格式化时间日期

$datestring?=?strftime?"%Y-%m-%d?%H:%M:%S",?gmtime;

printf("时间日期?-?$datestring\n");

得到一个小时以前的时间

perl -MPOSIX -le 'print strftime "%c", localtime(time()-3600);'

得到一天前的时间

perl -MPOSIX -le 'print strftime "%c", localtime(time()-86400);'

localtime 与 gtime 函数

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

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

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

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

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

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

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

time ,localtime 的用法!C语言版!求!!!!

time()函数声明位于time.h中,原型是:

time_t time(time *timeptr);

作用是返回1970-1-1日0时0分0秒到调用时刻的时长,如果参数不是空指针,那么返回值也会存储到参数自变量指向的位置。

localtime()函数声明位于time.h中,原型是:

struct tm *localtime(const time_t *timer);

作用是将日历时间(1970-1-1日0时0分0秒开始的时长)转换为本地时区的日期和时间结构。些函数的参数不是秒数本身,而是一个指向此数值的指针,成功调用此函数后可以通过struct tm结构体的各成员访问传入参数对应的本地时间。

struct tm和time_t均在time.h中定义,可以自行打开此文件观察。

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

1.

time

函数

返回1970-1-1,

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

原型:

time_t

time(time_t

*calptr)

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

头文件

time.h

返回值:

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

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

失败:-1

例:

time_t

now;

time(now);//

等同于now

=

time(NULL)

printf("now

time

is

%d\n",

now);

2.

localtime函数

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

原型:

struct

tm

*localtime(const

time_t

*

calptr);

头文件

time.h

 返回值:

成功:

struct

tm

*结构体,

原型如下:

struct

tm

{

int

tm_sec;

/*

取值区间为[0,59]

*/

int

tm_min;

/*

-

取值区间为[0,59]

*/

int

tm_hour;

/*

-

取值区间为[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(now)

;

tm_now

=

localtime(now)

;

printf("now

datetime:

%d-%d-%d

%d:%d:%d\n",

tm_now-tm_year+1900,

tm_now-tm_mon+1,

tm_now-tm_mday,

tm_now-tm_hour,

tm_now-tm_min,

tm_now-tm_sec)

;

以上只在linux环境下通过,

C/C++通用,

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

C语言关于localtime_s()和asctime_s()两个函数的用法

Visual C++ 6.0开发环境中显示当地日期与时间主要通过localtime()函数来实现,该函数的原型在time.h头文件中,其语法格式如下:

struct?tm?*localtime(xonst?time_t?*timer)

该函数的作用是把timer所指的时间(如函数time返回的时间)转换为当地标准时间,并以tm结构形式返回。其中,参数timer为主要获取当前时间的传递参数,格式为time_t指针类型。

而在Visual Studio 2010极其以后的版本,新增了安全函数,改成localtime_s(),语法格式也发生了变化:

errno_t?localtime_s(

???struct?tm*?_tm,

???const?time_t?*time?

);

其中:

_tm指向要填充的时间结构的指针。time指针,指向存储的时间。

如果成功,返回值则为零。?如果失败,返回值将是错误代码。?错误代码是在 Errno.h 中定义的。

结构类型的字段 tm 存储下面的值,其中每个为?int。

tm_sec分钟后的几秒 (0-59)。tm_min小时后的分钟 (0-59)。tm_hour午夜后经过的小时 (0-23)。tm_mday月 (1-31) 天。tm_mon月 (0 – 11;年 1 月 = 0)。tm_year年份 (当前年份减去 1900年)。tm_wday星期几 (0 – 6;星期日 = 0)。tm_yday每年的一天 (0-365;1 月 1 日 = 0)。tm_isdst如果夏令时有效,则为,正值夏时制不起作用; 如果为 0如果夏时制的状态是未知的负值。 如果 TZ 设置环境变量,C 运行库会假定规则适用于美国境内用于实现夏令时 (DST) 计算。

下面以一个Visual Studio 2015实例来输出当地日期与时间:

#include?iostream

#include?ctime

?

using?namespace?std;

?

int?main(void)

{

????struct?tm?t;????//tm结构指针

????time_t?now;?????//声明time_t类型变量

????time(now);?????//获取系统日期和时间

????localtime_s(t,?now);???//获取当地日期和时间

?????????

????//格式化输出本地时间

????printf("年:%d\n",?t.tm_year?+?1900);

????printf("月:%d\n",?t.tm_mon?+?1);

????printf("日:%d\n",?t.tm_mday);

????printf("周:%d\n",?t.tm_wday);

????printf("一年中的第%d天\n",?t.tm_yday);

????printf("时:%d\n",?t.tm_hour);

????printf("分:%d\n",?t.tm_min);

????printf("秒:%d\n",?t.tm_sec);

????printf("夏令时:%d\n",?t.tm_isdst);

????system("pause");

????return?0;

}

(责任编辑:IT教学网)

更多

推荐网站经济文章