아래는 localtime이 동작이 잘되지 않아서 GMT와 같이 나오는 경우를 처리하기 위한 코드도 포함됨 (잘되면 사실상 불필요)
use Time::Local;
sub get_datestr {
my ($flag) = @_;
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime;
my $g_time = timegm($sec, $min, $hour, $mday, $mon, $year);
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime;
my $l_time = timelocal($sec, $min, $hour, $mday, $mon, $year);
if( $g_time == $l_time ) {
# GMT+9로 변경
$l_time += 60 * 60 * 9;
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($l_time);
}
my $date_str = sprintf("%4d%02d%02d",$year+1900,$mon+1,$mday);
my $time_str = sprintf("%02d%02d%02d",$hour,$min,$sec);
if( not defined $flag ){
return $date_str.'_'.$time_str;
}
else {
return $date_str;
}
}
'기타' 카테고리의 다른 글
[C] hash table for C (0) | 2012.02.23 |
---|---|
[perl] cygwin에서 debug시 오류나고 실행안될 때 (0) | 2012.02.22 |
[perl] 시간, 날짜 얻기 (0) | 2012.02.21 |
[perl] autoflush 를 켜기 (0) | 2012.02.21 |
윈도우에서 오늘 날짜로 파일 만들기 (batch파일) (0) | 2012.02.21 |