python日期、时间处理

刘超 11天前 ⋅ 4472 阅读   编辑

目录

  1、将YYYYMMDD 转换为 YYYY-MM-DD
  2、生成RFC3339时间
  3、计算两个日期的间隔
  4、今天的n天后的日期
  5、今天的n天前的日期
  6、
将字符串时间转换为时间戳

  

 

一、将YYYYMMDD 转换为 YYYY-MM-DD,示例代码如下

>>> from datetime import datetime
>>> datetimeobject = datetime.strptime(oldformat,'%Y%m%d')
>>> newformat = datetimeobject.strftime('%Y-%m-%d')
>>> print newformat
2019-07-16
>>> newformat2 = datetimeobject.strftime('%Y/%m/%d')
>>> print newformat2
2019/07/16
>>> 

二、生成RFC3339时间(如2006-01-02T15:04:05Z07:00)

python2.7  

>>> from datetime import datetime
>>> d = datetime.now()
>>> print d.isoformat('T')
2020-01-02T08:13:21.544081

python3

>>> from datetime import datetime, timezone 
>>> local_time = datetime.now(timezone.utc).astimezone()
>>> local_time.isoformat()
'2020-01-02T08:16:45.326163+00:00'

三、计算两个日期的间隔

import datetime
# 计算两个日期的间隔
d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days
print delta

四、今天的n天后的日期

# 今天的n天后的日期
import datetime
now=datetime.datetime.now()
delta=datetime.timedelta(days=3)
n_days=now+delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')

五、今天的n天前的日期

# 今天的n天后的日期
import datetime
now=datetime.datetime.now()
delta=datetime.timedelta(days=-3)
n_days=now+delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')

六、将字符串时间转换为时间戳

#python2。7
>>> import datetime
>>> import time
>>> a = "2020-09-15 18:26:27.531"
>>> d = datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S.%f")
>>> t = d.timetuple()
>>> timeStamp = int(time.mktime(t)) * 1000
>>> print(timeStamp)
1600165587000
# mktime生成的是秒级的时间戳,乘以1000,转换为毫米时间戳,这样就和java中的new Date().getTime()、flink的context.window.getEnd生成的一样了


>>> t = datetime.datetime.today().timetuple()
>>> timeStamp = int(time.mktime(t)) * 1000
>>> print(timeStamp)
1600228688000

注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: