Parse date and time from string with time zone using Arrow
我有
1 2 3 | import arrow s = '2015/12/1 19:00:00' tz = 'Asia/Hong_Kong' |
我如何用箭头解析它,使我得到一个时区为
1 2 | In [30]: arrow.get(s, 'YYYY/M/D HH:mm:ss') Out[30]: <Arrow [2015-12-01T19:00:00+00:00]> |
我知道
试试这个:
1 | arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo=dateutil.tz.gettz(tz)) |
我还没有资格添加评论,只是想用时区str表达式来分享答案的一个更简单的版本。
1 2 3 | s = '2015/12/1 19:00:00' tz = 'Asia/Hong_Kong' arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo=tz) |
或者只是当地时区:
1 | arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo='local') |
或指定ISO-8601样式:
1 | arrow.get(s, 'YYYY/M/D HH:mm:ss').replace(tzinfo='+08:00') |
根据当前文档,您还可以为
1 2 3 | s = '2015/12/1 19:00:00' tz = 'Asia/Hong_Kong' arrow.get(s, tzinfo=tz) |
但是,到目前为止(0.12.1版),有一个缺点,那就是它不适用于基于字符串的日期解析。幸运的是,这个问题已经解决了,所以Arrow的下一个版本将集成这个问题。