Rails:DateTime.strptime 需要 12 小时无填充 [英] Rails: DateTime.strptime need 12 hour no-padding

查看:43
本文介绍了Rails:DateTime.strptime 需要 12 小时无填充的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Datetime.strptime 解析指纹读取器的 xml 文件,但时间为 12 小时未填充,并且似乎没有 strftime 选项来读取此文件.我试过 %-I 但没用.

I am trying to parse a fingerprint reader's xml file using Datetime.strptime but the times are 12 hour not padded and there seems to be no strftime option to read this. I tried %-I but it did not work.

来自 API

Time (Hour, Minute, Second, Subsecond):
  %H - Hour of the day, 24-hour clock, zero-padded (00..23)
  %k - Hour of the day, 24-hour clock, blank-padded ( 0..23)
  %I - Hour of the day, 12-hour clock, zero-padded (01..12)
  %l - Hour of the day, 12-hour clock, blank-padded ( 1..12)

来自 xml 数据包的片段

a snippet from the xml packet

<ROW Pin="142" Name="142" sTime="8/12/2013 8:14 PM" VerifyFlag="Fingerpint" MachineName="Office" Abnormite=""/>
<ROW Pin="163" Name="163" sTime="8/12/2013 8:16 PM" VerifyFlag="Fingerpint" MachineName="Office" Abnormite=""/>
<ROW Pin="103" Name="103" sTime="8/13/2013 12:03 AM" VerifyFlag="Fingerpint" MachineName="Office" Abnormite=""/>
<ROW Pin="101" Name="101" sTime="8/13/2013 12:03 AM" VerifyFlag="Fingerpint" MachineName="Office" Abnormite=""/>
<ROW Pin="401" Name="401" sTime="8/13/2013 12:36 AM" VerifyFlag="Fingerpint" MachineName="Office" Abnormite=""/>
<ROW Pin="505" Name="505" sTime="8/13/2013 2:17 AM" VerifyFlag="Fingerpint" MachineName="Office" Abnormite=""/>

推荐答案

使用 %l 选项似乎解析得很好.

It seems to be parsing fine, using the %l option.

凌晨 2:17

> DateTime.strptime("8/13/2013 2:17 AM", "%m/%d/%Y %l:%M %p")
 => Tue, 13 Aug 2013 02:17:00 +0000 

下午 2:17

> DateTime.strptime("8/13/2013 2:17 PM", "%m/%d/%Y %l:%M %p")                                                                                 
 => Tue, 13 Aug 2013 14:17:00 +0000

这篇关于Rails:DateTime.strptime 需要 12 小时无填充的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆