您的位置:

Python时间格式详解

一、常见时间格式

在Python中,常见的时间格式有多种,下面介绍一下常用的几种格式:

1. 时间戳

时间戳(epoch time)是指从1970年1月1日午夜(格林威治时间)以来的秒数。通常使用整数表示,可以用time()函数获得。

import time
time_now = time.time()
print("当前时间戳为:", time_now)

输出结果:

当前时间戳为: 1624905010.671396

2. 字符串时间

字符串时间是指将时间格式化成字符串来表示。常见的字符串时间格式有'%Y-%m-%d %H:%M:%S',可以用strftime()函数对时间格式进行转换。

import time
time_now = time.time()
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time_now))
print("当前时间为:", time_str)

输出结果:

当前时间为: 2021-06-29 15:50:10

3. datetime时间

datetime时间是Python中处理日期和时间的标准模块,可以用来进行日期和时间的计算、格式化等操作。

import datetime
time_now = datetime.datetime.now()
print("当前时间为:", time_now)

输出结果:

当前时间为: 2021-06-29 15:50:10.671950

二、时间格式化字符串

时间格式化字符串是指将datetime对象转换成字符串的格式,常用的格式化字符有:

  • %Y: 年份,如2021
  • %m: 月份,如06
  • %d: 日份,如29
  • %H: 小时,如15
  • %M: 分钟,如50
  • %S: 秒数,如10

三、时间操作函数

1. 时间戳转字符串

将时间戳转换成字符串时间,可以用localtime()函数获取当前时间的struct_time时间元组对象,然后再用strftime()函数进行格式化。

import time
time_now = time.time()
time_tuple = time.localtime(time_now)
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time_tuple)
print("当前时间为:", time_str)

输出结果:

当前时间为: 2021-06-29 15:50:10

2. 字符串转时间戳

将字符串时间转换成时间戳,可以用mktime()函数。

import time
time_str = "2021-06-29 15:50:10"
time_tuple = time.strptime(time_str,'%Y-%m-%d %H:%M:%S')
time_stamp = time.mktime(time_tuple)
print("当前时间戳为:", time_stamp)

输出结果:

当前时间戳为: 1624905010.0

3. 时间加减运算

可以使用timedelta()函数对日期和时间进行加减运算。

import datetime
time_now = datetime.datetime.now()
print("当前时间为:", time_now)
# 加5天
next_day = time_now + datetime.timedelta(days=5)
print("5天后的时间为:", next_day)
# 加2小时
next_hour = time_now + datetime.timedelta(hours=2)
print("2小时后的时间为:", next_hour)

输出结果:

当前时间为: 2021-06-29 15:50:10.727981
5天后的时间为: 2021-07-04 15:50:10.727981
2小时后的时间为: 2021-06-29 17:50:10.727981

4. 计算时间差

可以用datetime对象相减的方式计算出时间差。

import datetime
time1 = datetime.datetime(2021, 6, 29, 15, 50, 10)
time2 = datetime.datetime(2021, 6, 28, 14, 30, 20)
time_delta = time1 - time2
print("时间差为:", time_delta)

输出结果:

时间差为: 1 day, 1:19:50

四、时区处理

Python中的datetime对象默认是本地时间,如果想要切换时区,可以使用pytz模块。

import datetime
import pytz

local_time = datetime.datetime.now()
print("本地时间:" , local_time)

# 设置时区为纽约(UTC-4)
nyc_time = local_time.astimezone(pytz.timezone('America/New_York'))
print("纽约时间:", nyc_time)

# 设置时区为中国(UTC+8)
china_time = local_time.astimezone(pytz.timezone('Asia/Shanghai'))
print("中国时间:", china_time)

输出结果:

本地时间: 2021-06-29 15:50:10.737357
纽约时间: 2021-06-29 11:50:10.737357-04:00
中国时间: 2021-06-29 23:50:10.737357+08:00