欢迎访问宙启技术站
智能推送

Python处理时间日期的方法总结

发布时间:2023-06-15 06:15:04

Python作为一种高级编程语言,自然而然地具备了处理时间日期的能力,而这种能力又是日常开发中常见的需求之一。本文将总结Python中常用的时间日期处理方法,包括以下内容:

1. 时间戳转时间日期

2. 获取当前时间日期

3. 格式化时间日期字符串

4. 时间日期加减计算

5. 时间日期差计算

6. 判断时间日期大小

7. 时间日期比较

8. 时间日期与时间戳的转换

1. 时间戳转时间日期

在Unix、Linux等环境下,一般用整数表示时间戳,即从1970年1月1日0时0分0秒到当前时间的秒数。Python中可通过datetime模块将时间戳转换为时间日期。

import datetime

timestamp = 1606550400   # 时间戳——2020年11月28日0时0分0秒
dt = datetime.datetime.fromtimestamp(timestamp)
print(dt)   # 输出:2020-11-28 00:00:00

2. 获取当前时间日期

Python中可通过datetime模块获取当前时间日期,包括年、月、日、时、分、秒等信息。

import datetime

now = datetime.datetime.now()
print(now)   # 输出:2021-08-16 15:30:00.123456

3. 格式化时间日期字符串

当需要将时间日期转换为特定格式的字符串时,需要使用strftime()方法将时间日期按指定格式输出。

import datetime

dt = datetime.datetime(2020, 11, 28, 12, 30, 0)
str_dt = dt.strftime('%Y-%m-%d %H:%M:%S')
print(str_dt)   # 输出:2020-11-28 12:30:00

其中%Y表示四位数的年份,%m表示两位数的月份,%d表示两位数的日期,%H表示两位数的小时,%M表示两位数的分钟,%S表示两位数的秒数。

4. 时间日期加减计算

当需要对时间日期进行加减计算时,可通过timedelta()方法实现。该方法接受一个days参数、一个seconds参数、一个microseconds参数和一个milliseconds参数,返回一个时间差对象。

import datetime

dt = datetime.datetime(2020, 11, 28, 12, 30, 0)
delta = datetime.timedelta(days=1)
new_dt = dt + delta
print(new_dt)   # 输出:2020-11-29 12:30:00

其中days参数表示加减的天数,可为负数;seconds参数表示加减的秒数,可为负数;microseconds参数表示加减的微秒数,可为负数。

5. 时间日期差计算

当需要计算两个时间日期之间的差值时,可通过timedelta()方法实现,该方法接受两个参数,分别为两个时间日期之间的时间差。

import datetime

dt1 = datetime.datetime(2020, 11, 28, 12, 30, 0)
dt2 = datetime.datetime(2020, 11, 29, 14, 0, 0)
delta = dt2 - dt1
print(delta)   # 输出:1 day, 1:30:00

其中day表示天数,hour表示小时数,minute表示分钟数,second表示秒数。

6. 判断时间日期大小

当需要判断两个时间日期的前后顺序时,可直接使用><==符号进行比较。

import datetime

dt1 = datetime.datetime(2020, 11, 28, 12, 30, 0)
dt2 = datetime.datetime(2020, 11, 29, 14, 0, 0)

if dt1 < dt2:
    print('dt1在dt2之前')
else:
    print('dt1在dt2之后')

7. 时间日期比较

当需要只比较两个时间日期的日期、时间、年份等部分时,可通过date()time()year()等方法实现。

import datetime

dt1 = datetime.datetime(2020, 11, 28, 12, 30, 0)
dt2 = datetime.datetime(2020, 11, 29, 14, 0, 0)

if dt1.time() < dt2.time():
    print('dt1的时间在dt2之前')
else:
    print('dt1的时间在dt2之后')

其中date()方法返回日期部分,time()方法返回时间部分,year()方法返回年份。

8. 时间日期与时间戳的转换

当需要将时间日期和时间戳相互转换时,可通过timestamp()方法和fromtimestamp()方法实现。

import datetime

now = datetime.datetime.now()
timestamp = now.timestamp()   # 获取当前时间戳
new_now = datetime.datetime.fromtimestamp(timestamp)   # 根据时间戳获取时间日期

print(now)
print(new_now)

总结

Python中处理时间日期的方法很多,本文只列举了常见的方法。在实际开发中,还需要灵活运用这些方法,根据具体需求选择恰当的方法完成相应的时间日期处理任务。