讲Perl中的本地时间与UNIX时间戳间相互转换的方法

   这篇文章主要介绍了讲Perl中的本地时间与UNIX时间戳间相互转换的方法,主要用到了Perl中的Date::Parse模块,需要的朋友可以参考下

  当你的Perl脚本需要解决时间信息,这里有两种方法来表示和处理日期和时间。一种方法是易读的时间表示(例,"Sat Mar 14 10:14:05 EDT 2015"),另外一种是使用UNIX时间戳(也叫“新纪元时间”),这是从1970年1月1日到今所经过的时间秒数。每一种方法都有它自己的优劣势,取决于你的需要,也许也就需要转换一种格式到另一种。

  Perl中转换本地时间到UNIX时间戳

  为了从日期字符串中获得UNIX时间,可以使用Date::Parse模块中str2time()函数。此函数可以处理多种格式,例如:

  ?

1
2
3
4
5
6
7
8
9

Sat Mar 14 10:14:05 EDT 2015
3/14/2015 10:14:05 -0400
14/Mar/15 10:14:05
14 Mar 15 10:14:05
 
use Date::Parse;
my $local_time = "Sat Mar 14 10:14:05 EDT 2015";
# 1426342445 will be stored in $unix_time
my $unix_time = str2time($local_time);

  Date:Parse 模块支持多种语言(英语,法语,德语和意大利语)和时区。例如:

  ?

1
2
3
4

use Date::Parse;
use Date::Language;
my $lang = Date::Language->new('French');
my $unix_time = $lang->str2time("12:14:05, Ago 16, 2014 (CEST)");

  Perl中UNIX时间戳到易读的日期和时间

  如果你想要转换UNIX时间戳到易读的格式,可以使用localtime()函数,此函数可以转换UNIX时间戳为一个9元素列表。然后你可以使用返回的list构造任何你需要的可读格式。这里有一个代码片段:

  ?

1
2
3
4
5
6
7
8
9
10
11
12

# $sec, $min, $hour: 秒,分,时
# $mday: 月中的某天 (0-31)
# $mon: 月份,范围 0 (一月) 至 11 (十二月)
# $year: 年份,与1900年的差值(2015年为2015-1900=115)
# $wday: 星期,范围 0 (星期天) 至 6 (星期六)
# $yday: 年中的某天,范围 0 至 364 (或 365 闰年)
# $isdst: 是否是夏令时
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($unix_timestamp);
# necessary conversion of $mon and $year
$mon += 1;
$year += 1900;
print "Current time: $year-$mon-$mday $hour:$min:$secn";

时间: 2024-09-10 11:41:27

讲Perl中的本地时间与UNIX时间戳间相互转换的方法的相关文章

Linux有问必答:Perl中本地时间和UNIX时间戳间相互转换

Linux有问必答:Perl中本地时间和UNIX时间戳间相互转换 问题: 在Perl语言中,我需要转换易读的日期和时间到对应的UNIX时间戳,反之亦然.你可以给我一些将日期及时间转换到UNIX时间戳的Perl代码例子吗?或者相反,转换UNIX时间戳到可读的日期和时间. 当你的Perl脚本需要解决时间信息,这里有两种方法来表示和处理日期和时间.一种方法是易读的时间表示(例,"Sat Mar 14 10:14:05 EDT 2015"),另外一种是使用UNIX时间戳(也叫"新纪元

普通时间与Unix时间戳的转换方法

在线转换工具:http://timestamp.phpddt.com/ Unix时间戳工具介绍 Unix时间戳(Unix timestamp)是一种时间表示方法,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数. (1)各种编程语言获取当前Unix时间戳方法: Java time JavaScript Math.round(new Date().getTime()/1000)getTime()返回数值的单位是毫秒 Microsoft .NET / C# epoch =

返回当前时间的 Unix 时间戳

PHP time() 函数 PHP Date / Time 函数 定义和用法 time() 函数返回当前时间的 Unix 时间戳. 语法 time(void)参数 描述 void 可选. 说明 返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数. 提示和注释 提示:自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳. 例子 例子 1 <?php教程 $t=time(); echo($t

python获取当前时间对应unix时间戳的方法

  本文实例讲述了python获取当前时间对应unix时间戳的方法.分享给大家供大家参考.具体分析如下: Unix timestamp:是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 ? 1 2 3import datetime import time print time.mktime(datetime.datetime.now().timetuple()) 输出为: 1431674373.0 希望本文所述对大家的Python程序设计有所帮助.

python正常时间和unix时间戳相互转换的方法_python

本文实例讲述了python正常时间和unix时间戳相互转换的方法.分享给大家供大家参考.具体分析如下: 这段代码可以用来转换常规时间格式为unix时间戳,也可以将unix时间戳转换回来, 例如:1332888820 格式转换成 2012-03-28 06:53:40的形式 # -*- coding: utf-8 -*- import time def timestamp_datetime(value): format = '%Y-%m-%d %H:%M:%S' # value为传入的值为时间戳(

C#中系统时间和UNIX时间戳互相转换_C#教程

在项目开发过程中,有时会遇到不同程序之间相互调用数据,数据中不免会包含时间,比如ASP.NET调用PHP,牵扯到时间就要做一下处理,PHP程序中一般存取的都是UNIX时间,不像ASP.NET存储的是年月日时分秒,这样就需要做一下转换,代码如下: 一.将系统时间转换成UNIX时间戳 复制代码 代码如下: DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)); DateTime dtNow =

[工具类]将时间转换为unix时间戳格式

写在前面 由于在数据库中存的时间有时间戳格式的数据,在解析以及保存的时候,就需要考虑到数据格式的兼容性问题.看到数据库中的时间字段基本上都是以时间戳格式存储的,没办法,只能将时间进行转换了,考虑到其他系统可能要对时间字段进行操作,就不得不考虑时间的兼容性了. 时间戳辅助类 什么是时间戳? Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(

win7系统中的本地组策略打不开了解决方法图文教程

本地组策略编辑器窗口中,咱们可以实现很多功能的操作,大家在之前小编的文章中应该有所了解了吧?当然,本地组策略编辑器也并非只是简单的这个功能而已,严格来说,在win7旗舰版系统下载中,本地组策略是管理员为用户和计算机定义并控制程序.网络资源及操作系统行为的主要工具,也是电脑的一个基本组件,相当重要,那么本地组策略编辑器窗口突然打不开了,我们要怎样才能将它还原回来呢?下面,小编就来介绍一下具体的操作流程吧! 1.首先,咱们单击win7旗舰版的开始菜单或者是直接单击键盘上的windows图标,这样就可

php中获得视频时间总长度的另一种方法_php技巧

当时获得视频长度是采用网上的通用的获得flv视频文件长度的方法,但是这个方法只对flv视频支持,其他格式的视频获取到的值就很差了, 下面在介绍一种:利用ffmpeg返回值Duration的方法,原来也想过用,但是没有解决,现在可以了,由于ffmpeg支持很多种格式的视频,所以这个具体一定的通用性. ffmpeg获得视频时间长度的Duration的linux命令: ffmpeg -i test.flv 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed