首页 Python时间小结
文章
取消

Python时间小结

时间戳

返回 1970年后至今的 float 类型的秒值

1
2
3
> import time
> time.time()
1493128615.901287

本地时间

本地时区的时间,对于中国大陆为 +8 时区

1
2
3
4
5
6
7
8
9
> import time

# 现在本地时间
> time.localtime()
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=25, tm_hour=22, tm_min=0, tm_sec=39, tm_wday=1, tm_yday=115, tm_isdst=0)

# 指定时间戳的本地时间
> time.localtime(1493128615)
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=25, tm_hour=21, tm_min=56, tm_sec=55, tm_wday=1, tm_yday=115, tm_isdst=0)

格林尼治时间

格林尼治时间 近似等同 世界协调时间,也即 UTC 0 时区的时间,这里看作一样处理。

1
2
3
4
5
6
7
8
9
> import time

# 现在格林尼治时间
> time.gmtime()
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=25, tm_hour=14, tm_min=0, tm_sec=46, tm_wday=1, tm_yday=115, tm_isdst=0)

# 指定时间戳的格林尼治时间
> time.gmtime(1493128615)
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=25, tm_hour=13, tm_min=56, tm_sec=55, tm_wday=1, tm_yday=115, tm_isdst=0)

本地时区

1
2
3
> import time
> time.timezone
-28800

单位为s,中国大陆为-28800,即-8*3600

时间编辑

时间构造

1
2
3
4
> import time
> t=(2017,4,12,17,3,48,2,48,0)
> time.mktime(t)
1491987828.0

时间增减

datetime.timedelta() 的参数可为dayshoursminutesseconds

1
2
3
# 往后10天
> datetime.datetime.now() + datetime.timedelta(days=10)
datetime.datetime(2017, 5, 5, 23, 41, 56, 378790)

time 转字符串

1
2
3
4
5
6
7
8
> import time
# 将当前时间格式化
> time.strftime('%Y-%m-%d %H:%M:%S')
'2017-04-25 12:21:13'

# 将指定时间格式化
# t为time类型
time.strftime('%Y-%m-%d %H:%M:%S',t)

字符串转 time

1
2
3
> import time
> time.strptime('2017-04-25 15:56:45','%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=25, tm_hour=15, tm_min=56, tm_sec=45, tm_wday=1, tm_yday=115, tm_isdst=-1)

时间戳转 date

1
2
> datetime.date.fromtimestamp(1493128615.901287)
datetime.date(2017, 4, 25)

时间戳转 datetime

1
2
3
> import datetime
> datetime.datetime.fromtimestamp(1493128615.901287)
datetime.datetime(2017, 4, 25, 21, 56, 55, 901287)

现在

现在时间

1
2
3
> import datetime
> datetime.datetime.now()
datetime.datetime(2017, 4, 25, 22, 57, 36, 644025)

现在日期

1
2
3
4
5
> import datetime
> datetime.datetime.today()
datetime.date(2017, 4, 25)
> datetime.datetime.now().date()
datetime.date(2017, 4, 25)

现在年份

1
2
3
4
> import datetime
> t=datetime.datetime.now()
> t.year
2017

现在月份

1
2
3
4
> import datetime
> t=datetime.datetime.now()
> t.month
4

现在日

1
2
3
4
> import datetime
> t=datetime.datetime.now()
> t.day
25

现在小时

1
2
3
4
> import datetime
> t=datetime.datetime.now()
> t.hour
23

现在分

1
2
3
4
> import datetime
> t=datetime.datetime.now()
> t.miute
17

现在秒

1
2
3
4
> import datetime
> t=datetime.datetime.now()
> t.second
33

附:时间占位符

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(01-31)
  • %H 24小时制小时数(00-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00-59)
  • %S 秒(00-59)
  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366)
  • %p 本地A.M.或P.M.的等价符
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %Z 当前时区的名称
  • %% %号本身
本文由作者按照 CC BY 4.0 进行授权