bobbai 发表于 2015-12-26 08:10:53

Perl 时间函数

  Perl中两种时间格式:
  print time(),"\n";    #取得系统时间
  print join(",",gmtime()),"\n";    #格林尼治时间
  print join(",",localtime()),"\n";    #本地时间
  1311076590
  30,56,11,19,6,111,2,199,0
  30,56,19,19,6,111,2,199,0
  30秒,56分,19时,19日,7月,2011年,星期二,一年的第199天,夏令时无效
  令:
  ($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst)=localtime(time());
  $sec     秒,0-59
  $min     分,0-59
  $hour   时,0-23
  $day  月份中的日期,1-28,29,30,31
  $mon  年份中的月份,0-11
  $year  1900年以来的年份,年份加上1900,得出正确的4位数年的年份,
  $wday  星期几,0-6,0表示周日
  $yday  一年中的第几天,0-364,365
  $isdst  如果夏令时有效,则为真
  ($week,$mon,$day,$ht,$year)=split(" ",localtime(time()));
   Tue Jul 19 19:56:30 2011
  $week 星期缩写
  $mon 月份缩写
  $day日期
  $ht    时间(00:00:00)
  $year 年
  
  time()取得系统时间,例如:1311076590
  gmtime()与localtime()默认调用参数time().
  gmtime()=gmtime(time());
  localtime()=localtime(time());
  
  
  时间的计算
  一天以前
  $then=time()-1*86400;
  三小时间前
  $then=time()-3*3600;
  40分钟后
  $then=time()+40*60;
  
  示例:
  ($week,$mon,$day,$ht,$year)=split(" ",time());
  @months{qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)}=split(",","01,02,03,04,05,06,07,08,09,10,11,12");
  @week{qw(Sun Mon Tues Wed Thur Fri Sat)}=split(" ","日 一 二 三 四 五 六");
  $mon=$months{$mon};
  $week=$week{$week};
  print "现在是$year年$mon月$day日$ht,星期$week\n";
  
  $then=time()-3*3600;
  $then=localtime($then);
  {
  my ($week,$mon,$day,$ht,$year)=split(" ",$then);
  $then=$year."-".$months{$mon}."-".$day." ".$ht;
  #$then=sprintf("%04d-%02d-%02d %s",%year,$months{$mon},%day,$ht);
  #my $format_time=sprintf("%d-%d-%d %d:%d:%d",$year+1990,$mon+1,$mday,$hour,$min,$sec);
  }
  print "三小时以前是$then\n";
  
  示例:



#!/usr/bin/perl
print time(),"\n";
print gmtime(),"\n";
print localtime(time()),"\n";
print join(",",gmtime()),"\n";
print join(",",localtime(time())),"\n";
($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst)=localtime(time());
$year+=1900;
$mon+=1;
print "time is $year,month is $mon,day is $day\n";
print "hour is $hour,minutes is $min,second is $sec\n";

$now=time();
$then=$now-3600-$now%3600;
$start_time=$now-3600-$now%3600;
$now=localtime($now);
$then=localtime($then);
print "now is $now\n";
print "then is $then\n";
($week,$mon,$day,$ht,$year)=split(" ",$now);
@months{qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)}=split(",","01,02,03,04,05,06,07,08,09,10,11,12");
@week{qw(Sun Mon Tues Wed Thur Fri Sat)}=split(" ","日 一 二 三 四 五 六");
$mon=$months{$mon};
$week=$week{$week};
print "now is $year年$mon月$day日$ht,星期$week\n";

print "------------------------------------\n";
$now=time();
print "now is $now\n";
$now=$now-3600*10;
$start_time=$now-3600-$now%3600;
$end_time=$now-$now%3600;
$start_time=localtime($start_time);
{
my ($week,$mon,$day,$ht,$year)=split(" ",$start_time);
$start_time=$year."-".$months{$mon}."-".$day." ".$ht;
}
$end_time=localtime($end_time);
{
my ($week,$mon,$day,$ht,$year)=split(" ",$end_time);
$end_time=$year."-".$months{$mon}."-".$day." ".$ht;
}
print "start is $start_time\n";
print "end id $end_time\n";
页: [1]
查看完整版本: Perl 时间函数