python24小时12小时转换_日期时间 – 将12小时的日期/时间转换为24小时日期/时间...

使用Perl和手工制作的正则表达式,而不是像strptime这样的设施:

#!/bin/perl -w

while (<>)

{

# for date times that don't use leading zeroes,use this regex instead:

# (?:\d{1,2}/\d{1,2}/\d{4} )(\d{1,2})(?::\d\d:\d\d) (AM|PM)

while (m%(?:\d\d/\d\d/\d{4} )(\d\d)(?::\d\d:\d\d) (AM|PM)%)

{

my $hh = $1;

$hh -= 12 if ($2 eq 'AM' && $hh == 12);

$hh += 12 if ($2 eq 'PM' && $hh != 12);

$hh = sprintf "%02d",$hh;

# for date times that don't use leading zeroes,use this regex instead:

# (\d{1,2})(:\d\d:\d\d) (?:AM|PM)

s%(\d\d/\d\d/\d{4} )(\d\d)(:\d\d:\d\d) (?:AM|PM)%$1$hh$3%;

}

print;

}

这是非常的挑剔 – 也可以转换每行多个时间戳.

请注意,AM / PM到24小时的转换不是微不足道的.

> 12:01 AM – > 00:01

> 12:01 PM – > 12:01

> 01:30 AM – > 01:30

> 01:30 PM – > 13:30

现在测试:

perl ampm-24hr.pl <

12/24/2005 12:01:00 AM

09/22/1999 12:00:00 PM

12/12/2005 01:15:00 PM

01/01/2009 01:56:45 AM

12/30/2009 10:00:00 PM

12/30/2009 10:00:00 AM

!

12/24/2005 00:01:00

09/22/1999 12:00:00

12/12/2005 13:15:00

01/01/2009 01:56:45

12/30/2009 22:00:00

12/30/2009 10:00:00

添加:

$hh = ($1 % 12) + (($2 eq 'AM') ? 0 : 12);

只是一个测试…可能更整洁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值