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

format函数来格式化日期时间?

发布时间:2023-06-02 19:34:48

Python中,有两种方式来表示日期时间,一种是时间戳,即自1970年1月1日午夜开始到现在的秒数,另一种是日期时间字符串,如“2021-03-27 12:30:00”。当需要在Python中使用日期时间时,我们通常需要在表示方式之间进行转换。

Python中的datetime模块提供了处理日期时间的功能。我们可以使用datetime.datetime类来表示日期时间,该类的实例包含年、月、日、小时、分钟、秒等信息。以下是一个使用datetime模块来表示当前时间的示例:

import datetime

now = datetime.datetime.now()
print(now)

输出:

2021-03-27 10:45:32.902364

上面的代码中,我们使用now()方法获取当前日期时间。

使用datetime.datetime来格式化日期时间可以使用strftime(format)方法。其中format参数是格式化字符串,用来指定转换后的日期时间的格式。以下是一些常见的格式化字符串:

- %Y:表示四位数的年份,如2021年表示为2021。

- %m:表示两位数的月份,如3月表示为03。

- %d:表示两位数的日,如27号表示为27。

- %H:表示两位数的小时,24小时制。

- %I:表示两位数的小时,12小时制。

- %M:表示两位数的分钟。

- %S:表示两位数的秒。

- %p:表示上午或下午,例如下午表示为PM。

- %a:表示星期几的简写,如Mon表示周一。

- %A:表示星期几的全写,如Monday表示周一。

- %b:表示月份的简写,如Jan表示一月。

- %B:表示月份的全写,如January表示一月。

- %c:表示日期时间的本地表示。

- %j:表示年份的第几天,如2021年3月27日表示为086。

- %U:表示一年中的周数,周日为一周的开始,星期六为一周的结束。

- %W:表示一年中的周数,周一为一周的开始,星期天为一周的结束。

- %x:表示日期的本地表示。

- %X:表示时间的本地表示。

- %Z:表示时区的名称,如UTC表示协调世界时。

以下是一个使用strftime()方法来格式化日期时间的示例:

import datetime

now = datetime.datetime.now()

# 格式化为YYYY-MM-DD HH:MM:SS的形式
print(now.strftime("%Y-%m-%d %H:%M:%S"))

# 格式化为YYYY/MM/DD HH:MM:SS的形式
print(now.strftime("%Y/%m/%d %H:%M:%S"))

# 格式化为YYYY年MM月DD日 HH时MM分SS秒的形式
print(now.strftime("%Y年%m月%d日 %H时%M分%S秒"))

# 格式化为周几的全写加上YYYY年MM月DD日的形式
print(now.strftime("%A,%Y年%m月%d日"))

输出:

2021-03-27 10:45:32
2021/03/27 10:45:32
2021年03月27日 10时45分32秒
Saturday,2021年03月27日

除了使用strftime()方法,我们也可以使用datetime.datetime类的strptime(date_string, format)方法将日期时间字符串转换为datetime对象。其中,date_string是待转换的字符串,format是字符串的格式,需要与字符串的格式相对应。以下是一个使用strptime()方法将字符串转换为datetime对象的示例:

import datetime

date_string = "2021-03-27 10:45:32"
format = "%Y-%m-%d %H:%M:%S"

dt = datetime.datetime.strptime(date_string, format)

print(dt)

输出:

2021-03-27 10:45:32

另外,在Python3.6及以上版本中,还可以使用f-string来格式化日期时间。f-string允许我们在字符串中直接使用变量及表达式,使用起来非常方便。以下是使用f-string来格式化日期时间的示例:

import datetime

now = datetime.datetime.now()

# 格式化为YYYY-MM-DD HH:MM:SS的形式
print(f"{now:%Y-%m-%d %H:%M:%S}")

# 格式化为YYYY/MM/DD HH:MM:SS的形式
print(f"{now:%Y/%m/%d %H:%M:%S}")

# 格式化为YYYY年MM月DD日 HH时MM分SS秒的形式
print(f"{now:%Y年%m月%d日 %H时%M分%S秒}")

# 格式化为周几的全写加上YYYY年MM月DD日的形式
print(f"{now:%A},{now:%Y年%m月%d日}")

输出:

2021-03-27 10:45:32
2021/03/27 10:45:32
2021年03月27日 10时45分32秒
Saturday,2021年03月27日

总结:

使用datetime模块可以方便地处理日期时间,通过strftime()strptime()方法可以实现日期时间的格式化和转换。另外,f-string提供了一种简便的方法来格式化日期时间,可以让代码更加简洁明了。