加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

时区转化和perl函数

发布时间:2020-12-16 00:02:50 所属栏目:大数据 来源:网络整理
导读:整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated)。UTC与格林尼治平均时(GMT,Greenwich MeanTime)一样,都与英国伦敦的本地时相同。在本文中
整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated)。UTC与格林尼治平均时(GMT,Greenwich MeanTime)一样,都与英国伦敦的本地时相同。在本文中,UTC与GMT含义完全相同。

北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记为+0800。如果在电子邮件的信头中有这么一行:

Date:Fri,08 Nov 2002 09:42:22 +0800


UTC: Universal Time Coordinated 协调世界时,又称世界标准时间。
GMT: Greenwich Mean Time 格林尼治平均时。
Unix Time、Unix epoch、POSIX time、Unix timestamp。

可以认为上面所有的时间都相等,数值上都等于从1970年1月1日0时到当前的秒数。

时间与地理位置有关,为了有个统一的对话基础,将格林尼治(0时区)时间作为基准,其他时区的时间则在此基础之上进行加减。



Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

1. Perl中处理时间的函数有如下几种:
??????? 1、time函数:返回从1970年1月1日起累计的秒数
???????????? 使用:my $t=time();
??????? 2、 localtime函数:获取本地时区时间
???????????? 使用:my $t=localtime(time());
??????? 3、gmtime函数: 获取格林威治时间,0时区
???????????? 使用:my $t=gmtime(time());

$time = "2007-09-27 10:04:08"; 

&Date2Epos($time);
&Epos2Data(1387456136);

sub Epos2Data($){
	my $epostime = shift @_;
	my $timestr = strftime("%Y-%m-%d %H:%M:%Sn",localtime($epostime));
	#print "$timestr n";
	return $epostime;

}

sub Date2Epos($){
	my $timestr=shift @_;
#print "org: $timestr n";
	my ($timelc,$sec,$min,$hour,$mday,$mon,$year);

	my @time = reverse(split /-|:|_|/|s/,$timestr);
	foreach(@time){
		s/^0//;
	}
	$timelc = join ",",@time;
#print "$timelc n";
	($sec,$year) = split /,/,$timelc;
	$year -= 1900;
	$mon -= 1;
	my $epostime = timelocal($sec,$year);
	print $epostime,"n";
	$epostime;
} 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读