format函数来格式化日期时间?
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提供了一种简便的方法来格式化日期时间,可以让代码更加简洁明了。
