如何将本地时间的日期时间字符串转换为UTC时间的字符串?
我确定我以前做过这个,但找不到它,所以希望能帮助我(以及其他人)在将来做到这一点.
澄清:例如,如果我2008-09-17 14:02:00在我的本地时区(+10)中,我想生成一个具有相同UTC时间的字符串:2008-09-17 04:02:00.
此外,请访问http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/,请注意,一般情况下这不可能与DST和其他问题一样,因此从当地时间到UTC时间.
我需要将Java中的当前年份确定为整数.我可以使用java.util.Date(),但它已被弃用.
我正在处理Python中的日期,我需要将它们转换为UTC时间戳,以便在Javascript中使用.以下代码不起作用:
>>> d = datetime.date(2011,01,01)
>>> datetime.datetime.utcfromtimestamp(time.mktime(d.timetuple()))
datetime.datetime(2010, 12, 31, 23, 0)
Run Code Online (Sandbox Code Playgroud)
将日期对象首先转换为datetime也无济于事.我试过这个链接的例子,但是:
from pytz import utc, timezone
from datetime import datetime
from time import mktime
input_date = datetime(year=2011, month=1, day=15)
Run Code Online (Sandbox Code Playgroud)
现在要么:
mktime(utc.localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)
要么
mktime(timezone('US/Eastern').localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)
确实有效.
所以一般的问题:如何根据UTC获得自纪元以来转换为秒的日期?
这看起来应该是非常简单的事情,但是我已经暂时陷入页面错误这个问题,所以这里有.
看看PHP文档,DateTime对象的以下两种方法似乎都解决了我的问题:
这两种方法都在doco中标记为在版本> = 5.3中可用(并且,毫不奇怪,如果我尝试调用它们,我发现它们不存在).我找不到5.2.8的任何具体文档,所以我不确定我的版本中是否有相同的方法.我已经用Google搜索了问题并找到了一系列不拘一格的解决方案,这些解决方案都没有满足我非常简单的要求:
对于某些上下文,我有以下代码:
$st_dt = new DateTime(verifyParam ('start_date'));
$end_dt = new DateTime(verifyParam ('end_date'));
// is the end date more ancient than the start date?
if ($end_dt < $start_dt)
Run Code Online (Sandbox Code Playgroud)
显然这个家伙没有比较运算符.
编辑:显然我的假设是完全错误的(感谢Milen如此有效地说明这一点).有一个比较运算符,它工作得很好,谢谢.有时我真的很想念编译器.该错误在上面的代码中,我相信你会发现它比我快得多:).
我期待着您对解决方案简单性的尴尬.
编辑:当然,尴尬随之而来......
将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?
假设我有80秒,.NET中是否有任何专门的类/技术允许我将这些80秒转换为(00h:00m:00s:00ms)格式,比如DateTime或其他东西?
我试图从值中减去一个日期值datetime.today()来计算多久以前的东西.但它抱怨说:
TypeError: can't subtract offset-naive and offset-aware datetimes
Run Code Online (Sandbox Code Playgroud)
该值datetime.today()似乎不是"时区感知",而我的其他日期值是.如何获得值datetime.today()是时区的?现在它给我时间在当地时间,恰好是PST,即UTC-8hrs.最坏的情况是,有没有办法我可以手动输入时区值到datetime返回的对象datetime.today()并将其设置为UTC-8?当然,理想的解决方案是让它自动知道时区.
如何将Python time.struct_time对象转换为datetime.datetime对象?
我有一个提供第一个库的库和第二个想要第二个库的库...
如果我有一个PHP字符串格式mm-dd-YYYY(例如,10-16-2003),我该如何正确地将其转换为a Date然后a DateTime格式为YYYY-mm-dd?我问两个唯一的原因Date,并DateTime是因为我需要一个在一个地方,和其他在不同的地方.
我timestamptz在PostgreSQL中有一个时区感知字段.当我从表中提取数据时,我想立即减去时间,以便我可以得到它的年龄.
我遇到的问题是,无论是datetime.datetime.now()和datetime.datetime.utcnow()似乎回到时区不知道时间戳,这导致我得到这个错误:
TypeError: can't subtract offset-naive and offset-aware datetimes
Run Code Online (Sandbox Code Playgroud)
有没有办法避免这种情况(最好不使用第三方模块).
编辑:感谢您的建议,但是尝试调整时区似乎给了我错误..所以我只是在PG中使用时区不知道的时间戳并始终使用:
NOW() AT TIME ZONE 'UTC'
Run Code Online (Sandbox Code Playgroud)
这样我的所有时间戳都默认为UTC(尽管这样做更烦人).