python中time、datetime模块的使用

1. 介绍

时间是我们生活中无法避免的问题,同样在编程中也需要对时间进行操作。Python中的time和datetime模块就提供了关于时间相关的常用操作。

1.1 time模块

time模块是Python中处理时间的基本模块。该模块下有很多用于处理时间的函数和类。其中最常用的函数包括:

time():返回当前时间的时间戳,时间戳是指当前时间距离1970年1月1日零时零分零秒的秒数。

sleep():线程推迟指定的时间运行,在指定的时间之后线程才会运行。

gmtime():将一个时间戳转换为UTC时区(世界标准时间,与中国相差8小时)的struct_time对象。

localtime():将时间戳转换为当前时区的struct_time对象。

import time

# 返回当前时间时间戳

print(time.time())

# 推迟2秒运行

time.sleep(2)

# 将时间戳转换为UTC时区的struct_time对象

utc_time = time.gmtime(1612115878)

print(utc_time)

# 将时间戳转换为当前时区的struct_time对象

local_time = time.localtime(1612115878)

print(local_time)

1.2 datetime模块

datetime模块是Python中处理时间的高级模块,它是在time模块的基础上进行的封装。该模块下有很多用于处理时间的类和函数。其中最常用的类包括:

datetime:表示日期和时间。

date:表示日期。

time:表示时间。

timedelta:表示时间间隔。

import datetime

# 获取当前日期和时间

now = datetime.datetime.now()

print(now)

# 获取日期

today = datetime.date.today()

print(today)

# 获取时间

cur_time = datetime.datetime.now().time()

print(cur_time)

# 计算时间间隔

delta_time = datetime.timedelta(days=1)

print(delta_time)

2. 时间戳与日期时间相互转换

2.1 时间戳转日期时间

时间戳是指当前时间距离1970年1月1日零时零分零秒的秒数,将时间戳转换为日期时间可以使用time模块的gmtime()、localtime()函数,也可以使用datetime模块的fromtimestamp()函数。

import time, datetime

# 将时间戳转换为UTC时区的日期时间

timestamp = 1612690078

utc_date_time = time.gmtime(timestamp)

print(utc_date_time)

# 将时间戳转换为当前时区的日期时间

local_date_time = time.localtime(timestamp)

print(local_date_time)

# 将时间戳转换为日期时间

date_time = datetime.datetime.fromtimestamp(timestamp)

print(date_time)

2.2 日期时间转时间戳

将日期时间转换为时间戳可以使用time模块的mktime()函数,也可以使用datetime模块的timestamp()函数。

import time, datetime

# 将UTC时区的日期时间转换为时间戳

utc_date_time = (2021, 2, 7, 8, 7, 58, 6, 38, 0)

utc_timestamp = time.mktime(utc_date_time)

print(utc_timestamp)

# 将当前时区的日期时间转换为时间戳

local_date_time = datetime.datetime.now()

local_timestamp = time.mktime(local_date_time.timetuple())

print(local_timestamp)

# 将日期时间转换为时间戳

date_time = datetime.datetime(2021, 2, 7, 16, 7, 58)

timestamp = date_time.timestamp()

print(timestamp)

3. 格式化日期时间

对于获取的日期时间和时间戳,我们常常需要将其按照指定格式进行格式化输出。在Python中可以使用time模块的strftime()函数和datetime模块的strftime()函数来实现。

3.1 time模块格式化

time模块的strftime()函数可以将struct_time对象转换为字符串。

import time

# 获取当前的时间

cur_time = time.localtime()

# 将时间按照指定格式进行格式化

str_time = time.strftime('%Y-%m-%d %H:%M:%S', cur_time)

print(str_time)

3.2 datetime模块格式化

datetime模块的strftime()函数可以将datetime对象或者date对象转换为字符串。

import datetime

# 获取当前的时间

cur_time = datetime.datetime.now()

# 将时间按照指定格式进行格式化

str_time = cur_time.strftime('%Y-%m-%d %H:%M:%S')

print(str_time)

# 获取当前的日期

cur_date = datetime.date.today()

# 将日期按照指定格式进行格式化

str_date = cur_date.strftime('%Y-%m-%d')

print(str_date)

4. 时间运算

在Python中,可以使用datetime模块进行日期和时间的运算,例如加减运算。

import datetime

# 获取当前时间

now = datetime.datetime.now()

# 当前时间加上10天

after_10_days = now + datetime.timedelta(days=10)

# 当前时间减去1小时

before_1_hour = now - datetime.timedelta(hours=1)

# 计算时间差

delta_time = now - before_1_hour

print(after_10_days)

print(before_1_hour)

print(delta_time)

5. 总结

Python中的time和datetime模块提供了丰富的关于时间的操作,可以轻松地对时间进行处理。在实际开发中,我们需要根据不同的需求来选择不同的操作方法,以达到最优的效果。

后端开发标签