我得到一个输入:1410627645
。
我需要将其转换为PST。应该在2014/09 / 13-10:00:00左右。我如何在python / ruby中转换它。我如何识别时区?
答案 0 :(得分:2)
Time.at(1410627645).to_datetime
#=> Sat, 13 Sep 2014 19:00:45 +0200
答案 1 :(得分:2)
Time.at(1410627645).to_datetime.in_time_zone("Pacific Time (US & Canada)")
#=> Sat, 13 Sep 2014 10:00:45 PDT -07:00
或只是
Time.at(1410627645).in_time_zone("Pacific Time (US & Canada)")
#=> Sat, 13 Sep 2014 10:00:45 PDT -07:00
答案 2 :(得分:1)
您可以使用datetime
:
>>> import datetime
>>> datetime.datetime.fromtimestamp(1410627645)
datetime.datetime(2014, 9, 13, 22, 30, 45)
现在你可以在一个名为my_time
的变量中疼痛:
>>> my_time = datetime.datetime.fromtimestamp(1410627645)
>>> "{}/{}/{}-{}:{}:{}".format(my_time.year,my_time.month,my_time.day,my_time.hour,my_time.minute,my_time.second)
'2014/9/13-22:30:45'
您可以按time.gmtime
确定时区:
>>> time.gmtime(1410627645)
time.struct_time(tm_year=2014, tm_mon=9, tm_mday=13, tm_hour=17, tm_min=0, tm_sec=45, tm_wday=5, tm_yday=256, tm_isdst=0)
答案 3 :(得分:0)
所以基本上你也可以像这样使用strftime:
DateTime.strftime("1410627645",'%s')
答案 4 :(得分:0)
如果您输入的是“自Epoch以来的秒数”(POSIX时间),那么您可以使用datetime.fromtimestamp()
方法将其转换为Python中的分解时间。
以UTC时区获得时间:
>>> from datetime import datetime, timezone
>>> utc_dt = datetime.fromtimestamp(1410627645, timezone.utc)
>>> utc_dt
datetime.datetime(2014, 9, 13, 17, 0, 45, tzinfo=datetime.timezone.utc)
>>> print(utc_dt)
2014-09-13 17:00:45+00:00
在当地时区抽出时间:
>>> local_dt = utc_dt.astimezone()
>>> local_dt
datetime.datetime(2014, 9, 13, 10, 0, 45,
tzinfo=datetime.timezone(datetime.timedelta(-1, 61200), 'PDT'))
>>> print(local_dt)
2014-09-13 10:00:45-07:00
要在指定的时区内获得时间:
>>> import pytz
>>> dt = datetime.fromtimestamp(1410627645, pytz.timezone('America/Los_Angeles'))
>>> dt
datetime.datetime(2014, 9, 13, 10, 0, 45,
tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)
>>> print(dt)
2014-09-13 10:00:45-07:00