Perl에서 로컬 시간과 UNIX 스탬프 간의 상호 변환 방법을 설명합니다.

1754 단어 PerlUNIX
Perl 스크립트가 시간 정보를 해결해야 한다면, 날짜와 시간을 표시하고 처리하는 두 가지 방법이 있습니다.한 가지 방법은 읽기 쉬운 시간 표시(예,'Sat Mar 14 10:14:05 EDT 2015')이고, 다른 하나는 유닉스 타임 스탬프('신기원 시간')를 사용하는 것이다. 이것은 1970년 1월 1일부터 지금까지 경과한 시간 초수다.모든 방법에는 자신만의 우열세가 있다. 당신의 필요에 달려 있고, 아마도 다른 형식으로 변환해야 할 것이다.
Perl에서 로컬 시간을 UNIX 스탬프로 변환
날짜 문자열에서 UNIX 시간을 얻기 위해 Date:::Parse 모듈의str2time() 함수를 사용할 수 있습니다.이 함수는 다음과 같은 여러 형식을 처리할 수 있습니다.

  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);

날짜: Parse 모듈은 다양한 언어(영어, 프랑스어, 독일어, 이탈리아어)와 시간대를 지원합니다.예:

  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 시간을 읽기 쉬운 날짜와 시간으로 스탬프
유닉스 타임 스탬프를 읽기 쉬운 형식으로 변환하려면 localtime () 함수를 사용하십시오. 이 함수는 유닉스 타임 스탬프를 9 요소 목록으로 변환할 수 있습니다.그리고 되돌려주는list를 사용하여 읽을 수 있는 형식을 만들 수 있습니다.여기에 코드 세션이 있습니다.

  # $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:$sec
";

좋은 웹페이지 즐겨찾기