对表示日期时间/时间戳的字符串进行排序

时间:2017-01-30 12:05:15

标签: string macos perl date

我有一组以下列格式表示日期时间的字符串:
1/30/2017 10:46:13 AM
我想对它们进行排序,因此我尝试将它们转换为实际日期,如下所示:

my $format = "%m/%d/%Y %H:%M:%S";    
my $date1= Time::Piece->strptime($the_date_string, $format );      

它在解析时出错。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:7)

运行代码时出现的错误是

  

strptime中字符串末尾的垃圾:AM

您错过了字符串中AM的{​​{3}}。将%p添加到模式,该模式解析 ante meridiem post meridiem 的本地表示。在您的情况下,那是 AM PM

my $format = "%m/%d/%Y %H:%M:%S %p";
my $date1= Time::Piece->strptime('1/30/2017 10:46:13 AM', $format );