目录javascript
首先先理解一些通用的概念。java
为了让时间易于阅读又出现了用各类字符串来表示时间的方法。python
YYYY/MM/DD HH:MM:SS ± timezone(时区用4位数字表示) // eg 1992/02/12 12:23:22+0800
YYYY-MM-DDThh:mm:ss ± timezone(时区用HH:MM表示) 1997-07-16T08:20:30Z // “Z”表示UTC标准时区,即"00:00",因此这里表示零时区的`1997年7月16日08时20分30秒` //转换成位于东八区的北京时间则为`1997年7月17日16时20分30秒` 1997-07-16T19:20:30+01:00 // 表示东一区的1997年7月16日19时20秒30分,转换成UTC标准时间的话是1997-07-16T18:20:30Z
由于原生库对于时间的处理过于复杂,这里用了arrow。segmentfault
>>> import arrow # 得到标准时 >>> utc = arrow.utcnow() >>> utc <Arrow [2018-11-13T13:34:28.469607+00:00]> # 时区转换 >>> local = utc.to("Asia/Shanghai") <Arrow [2018-11-13T21:36:41.001464+08:00]> # 比较 >>> utc > utc.shift(hour=-1) True # 字符串转换 >>> arrow.get('2013-05-11T21:23:58.970460+00:00') <Arrow [2013-05-11T21:23:58.970460+00:00]> # 格式化输出 >>> local.format('YYYY-MM-DD HH:mm:ss ZZ') '2018-11-13 21:36:41 +08:00' # 可读性 >>> local.humanize() 'an hour ago' >>> local.humanize(locale='zh') '1小时前' # 时间戳 >>> utc.timestamp 1542116201
Arrow文档orm