문제

내 웹 서비스가 Perl에서 JSON 형식으로 수신하는이 날짜 형식을 어떻게 구문 분석 할 수 있습니까? DateTime 객체로 변환하고 싶습니다.

Date(1216647000000-0400)

나는 그것이 시간대 오프셋과 함께 에포크 이후 밀리 초라고 가정했지만 날짜는 벗어났습니다.

도움이 되었습니까?

해결책

시간은 시대 이후 밀리 초로 나열됩니다. 에포크 초를 얻으려면 1000으로 나눕니다.

만난 다른 경우와 함께 작동하는지 확인하십시오.

use DateTime;

my $json_date = 'Date(1216647000000-0400)';
if ($json_date =~ m{ \b (\d+) \b ([+-]\d\d\d\d\b)? }x ) {
    my ( $epoch_milliseconds, $time_zone ) = ( $1, $2 );
    my $dt = DateTime->from_epoch( epoch => $epoch_milliseconds / 1000 );
    if ($time_zone) {
        $dt->set_time_zone($time_zone);
    }
    print $dt->datetime;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top