Parse date and time from string with time zone using Arrow
I have
import arrow
s = '2015/12/1 19:00:00'
tz = 'Asia/Hong_Kong'
How can I parse this with Arrow such that I get an Arrow object with the time zone tz
? The following defaults to UTC time.
In [30]: arrow.get(s, 'YYYY/M/D HH:mm:ss')
Out[30]: <Arrow [2015-12-01T19:00:00+00:00]>
I know the .to
function but that converts a time zone and but doesn't allow me to change to time zone.
尝试这个:
arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo=dateutil.tz.gettz(tz))
I'm not qualified yet to add a comment and would just like to share a bit simpler version of the answer with timezone str expression.
s = '2015/12/1 19:00:00'
tz = 'Asia/Hong_Kong'
arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo=tz)
or simply local timezone:
arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo='local')
or specified ISO-8601 style:
arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo='+08:00')
Per the current documentation, you can also provide a default timezone for arrow.get()
, eg:
s = '2015/12/1 19:00:00'
tz = 'Asia/Hong_Kong'
arrow.get(s, tzinfo=tz)
However, as of right now (version 0.12.1) there is a shortcoming where that doesn't work for string-based date parsing. Fortunately, this has been fixed, so the next release of Arrow will integrate this fix.
链接地址: http://www.djcxy.com/p/6994.html上一篇: 为什么`type(myField)`返回`<type'instance'>`而不是'<type'Field'>`?
下一篇: 使用箭头解析带时区的字符串的日期和时间