我有两个日期时间,需要确定它们之间的秒数。它们的创建方式如下:
date_time1 = DateTime.strptime("01-15-2014 01:11:12 PM", '%m-%d-%Y %l:%M:%S')
date_time2 = DateTime.now
所以他们看起来像这样:
date_time1: 2014-01-15T01:11:12+00:00
date_time2: 2014-01-16T00:11:12+10:00
如何找到两个日期之间的秒数?我已经尝试转换为时间但.to_time函数对我不起作用,因为时区显然没有设置。
任何帮助都将不胜感激。
由于
答案 0 :(得分:0)
to_time
工作。它会将两次转换为您当地的时区,但在减去它们时没有任何区别。这绝对有效:
date_time2.to_time - date_time1.to_time
你真正的问题是你没有解析PM,这就是为什么你的差异会在12小时后结束!看看你的例子
date_time1 = DateTime.strptime("01-15-2014 01:11:12 PM", '%m-%d-%Y %l:%M:%S')
# date_time1: 2014-01-15T01:11:12+00:00
你要求UTC时间下午1点11分,但它告诉你date_time1
是1:11 AM 。您需要添加到格式字符串
'%m-%d-%Y %l:%M:%S %p'
如果您仍然持怀疑态度,请点击我的时区示例。
d1 = DateTime.now
#<DateTime: 2014-06-18T11:47:22-04:00 ((2456827j,56842s,704352659n),-14400s,2299161j)>
d1.to_time - DateTime.strptime("06-18-2014 03:47:00 PM", '%m-%d-%Y %l:%M:%S %p').to_time
# 22.704352659
请注意,UTC时间下午3:47 UTC是11:47(d1
的时区),所以~22秒是正确答案。
修改强>
但是,如果要在计算偏移量之前将它们更改为在同一时区,则可以执行以下操作:
date_time2.to_time - (date_time1 - date_time2.offset).to_time