您的位置:

Python时间格式化

引言

时间格式化指的是将时间按照一定格式展示出来。在Python中,有很多方法可以格式化时间,比如使用time模块和datetime模块,这些模块都提供了各种格式化时间的函数。

本文将介绍Python时间格式化的基础知识,包括时间和日期格式化的常用标识符、时间的格式化方法、时间戳的格式化方法、字符串和时间之间的转换等。

基础知识

时间和日期格式化的常用标识符

在Python中,时间和日期格式化的常用标识符如下表所示:

标识符 含义 示例
%Y 四位数的年份 2021
%m 月份,用0填充至两位 01, 02, ..., 12
%B 完整的月份名 January, February, ..., December
%b 简写的月份名 Jan, Feb, ..., Dec
%d 用0填充至两位的日期 01, 02, ..., 31
%A 完整的星期几 Sunday, Monday, ..., Saturday
%a 简写的星期几 Sun, Mon, ..., Sat
%H 24小时制的小时数,用0填充至两位 00, 01, ..., 23
%I 12小时制的小时数,用0填充至两位 01, 02, ..., 12
%p 上午或下午 AM, PM
%M 用0填充至两位的分钟数 00, 01, ..., 59
%S 用0填充至两位的秒数 00, 01, ..., 59

时间的格式化方法

time模块和datetime模块都提供了strftime()函数用于时间格式化,该函数的语法如下:

strftime(format[, t])

其中,format是格式化字符串,t是表示时间的可选参数,默认为当前时间。下面是一个示例:

import time

# 获取当前时间
now = time.strftime("%Y-%m-%d %H:%M:%S")

print("当前时间为:", now)

执行以上代码,输出结果如下:

当前时间为: 2021-08-25 14:26:44

时间戳的格式化方法

在Python中,还可以使用time模块中的gmtime()、localtime()和strptime()函数以及datetime模块中的fromtimestamp()函数将时间戳格式化成字符串。下面分别介绍这些函数的使用方法。

1. gmtime()函数

gmtime()函数用于将一个时间戳转换为struct_time格式的UTC时间。

gmtime([secs])

其中,secs是时间戳,如果不传入该参数,将返回当前时间戳所对应的UTC时间。

以下是一个示例:

import time

# 获取当前时间戳
timestamp = time.time()

# 将时间戳转换为UTC时间
utc_time = time.gmtime(timestamp)

# 格式化输出utc_time
utc_time_str = time.strftime("%Y-%m-%d %H:%M:%S", utc_time)
print("utc时间为:", utc_time_str)

执行以上代码,输出结果如下:

utc时间为: 2021-08-25 06:26:44

2. localtime()函数

localtime()函数用于将一个时间戳转换为struct_time格式的本地时间。

localtime([secs])

与gmtime()函数类似,如果不传入secs参数,将返回当前时间戳所对应的本地时间。

以下是一个示例:

import time

# 获取当前时间戳
timestamp = time.time()

# 将时间戳转换为本地时间
local_time = time.localtime(timestamp)

# 格式化输出local_time
local_time_str = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("本地时间为:", local_time_str)

执行以上代码,输出结果如下:

本地时间为: 2021-08-25 14:26:44

3. strptime()函数

strptime()函数用于将一个字符串解析为struct_time格式的时间。函数的语法如下:

strptime(string[, format])

其中,string是要解析的字符串,format是字符串的格式,与strftime()函数的格式相同。下面是一个示例:

import time

# 字符串时间
str_time = "2021-08-25 14:26:44"

# 将字符串转换为struct_time格式的时间
time_struct = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")

# 输出time_struct
print(time_struct)

执行以上代码,输出结果如下:

time.struct_time(tm_year=2021, tm_mon=8, tm_mday=25, tm_hour=14, tm_min=26, tm_sec=44, tm_wday=2, tm_yday=237, tm_isdst=-1)

4. fromtimestamp()函数

fromtimestamp()函数用于将一个时间戳转换为datetime格式的时间。函数的语法如下:

fromtimestamp(timestamp[, tz])

其中,timestamp是时间戳,tz是时区,默认为None。

以下是一个示例:

import datetime

# 获取当前时间戳
timestamp = datetime.datetime.now().timestamp()

# 将时间戳转换为datetime格式的时间
date_time = datetime.datetime.fromtimestamp(timestamp)

# 格式化输出date_time
date_time_str = date_time.strftime("%Y-%m-%d %H:%M:%S")
print("datetime时间为:", date_time_str)

执行以上代码,输出结果如下:

datetime时间为: 2021-08-25 14:26:44

字符串和时间之间的转换

在Python中,可以使用time模块和datetime模块实现字符串和时间之间的转换。下面分别介绍这些方法的使用方法。

1. 字符串转时间

在time模块中,可以使用strptime()函数将字符串解析为struct_time格式的时间。函数的语法如下:

strptime(string, format)

其中,string是要解析的字符串,format是字符串的格式,与strftime()函数的格式相同。

以下是一个示例:

import time

# 字符串时间
str_time = "2021-08-25 14:26:44"

# 将字符串转换为struct_time格式的时间
time_struct = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")

# 输出time_struct
print(time_struct)

执行以上代码,输出结果如下:

time.struct_time(tm_year=2021, tm_mon=8, tm_mday=25, tm_hour=14, tm_min=26, tm_sec=44, tm_wday=2, tm_yday=237, tm_isdst=-1)

在datetime模块中,可以使用strptime()函数将字符串解析为datetime格式的时间。函数的语法如下:

datetime.datetime.strptime(date_string, format)

其中,date_string是要解析的字符串,format是字符串的格式,与strftime()函数的格式相同。

以下是一个示例:

import datetime

# 字符串时间
str_time = "2021-08-25 14:26:44"

# 将字符串转换为datetime格式的时间
date_time = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S")

# 输出date_time
print(date_time)

执行以上代码,输出结果如下:

2021-08-25 14:26:44

2. 时间转字符串

在time模块中,可以使用strftime()函数将struct_time格式的时间转换为字符串。函数的语法如下:

strftime(format[, t])

其中,format是格式化字符串,t是表示时间的可选参数,默认为当前时间。

以下是一个示例:

import time

# 获取当前时间
now = time.localtime()

# 将时间转换为字符串
str_time = time.strftime("%Y-%m-%d %H:%M:%S", now)

# 输出str_time
print(str_time)

执行以上代码,输出结果如下:

2021-08-25 14:26:44

在datetime模块中,可以使用strftime()函数将datetime格式的时间转换为字符串。函数的语法如下:

strftime(format)

其中,format是格式化字符串。

以下是一个示例:

import datetime

# 获取当前时间
now = datetime.datetime.now()

# 将时间转换为字符串
str_time = now.strftime("%Y-%m-%d %H:%M:%S")

# 输出str_time
print(str_time)

执行以上代码,输出结果如下:

2021-08-25 14:26:44

结语

本文介绍了Python中时间格式化的基础知识,包括时间和日期格式化的常用标识符、时间的格式化方法、时间戳的格式化方法、字符串和时间之间的转换等。

小标题:

1. 时间和日期格式化的常用标识符

2. 时间的格式化方法

3. 时间戳的格式化方法

4. 字符串和时间之间的转换