您的位置:

利用Python datetime.datetime strptime进行日期格式化

一、常见日期格式及strptime的使用方法

在处理日期相关的数据时,不同的日期格式之间会带来很多问题。Python内置的datetime模块提供了一种便捷的方式来处理这些情况。datetime.datetime.strptime()方法可以将字符串解析为日期时间对象。

在使用该方法时,需要将日期格式作为第一个参数,字符串作为第二个参数。常见的日期格式如下:

<%a> - Weekday abbreviated (Mon)
<%A> - Weekday full name (Monday)
<%b> - Month abbreviated (Jan)
<%B> - Month full name (January)
<%c> - Date and time (Tue Mar 19 22:56:03 2019)
<%d> - Day of the month (19)
<%H> - Hour in 24-hour format (22)
<%I> - Hour in 12-hour format (10)
<%j> - Day of the year (78)
<%m> - Month (03)
<%M> - Minute (26)
<%p> - AM or PM (PM)
<%S> - Second (28)
<%U> - Week number beginning on Sunday (12)
<%w> - Weekday as decimal number (0=Sunday, 6=Saturday)
<%W> - Week number beginning on Monday (12)
<%x> - Date (03/19/19)
<%X> - Time (22:57:23)
<%y> - Year without century (19)
<%Y> - Year with century (2019)
<%Z> - Timezone

比如,原始字符串为"2019-03-19",需要将其转化为日期对象,则可以使用以下代码:

import datetime

date_str = "2019-03-19"
date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d")
print(date_obj)

输出如下:

2019-03-19 00:00:00

二、其它常用功能

除了将字符串解析为日期时间对象,datetime.datetime.strptime()还可以进行其它一些常用操作。如:

1. 将字符串转化为时间戳

可以通过在strptime()中添加指定格式的参数,将一个时间转化为时间戳。示例如下:

import datetime

time_str = "2019-03-19 22:57:23"
time_obj = datetime.datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
time_stamp = int(time_obj.timestamp())
print(time_stamp)

输出如下:

1553018243

2. 将日期对象转化为指定格式的字符串

如果需要将日期对象转化为指定格式的字符串,可以使用datetime.datetime.strftime()方法。该方法的参数与strptime()方法的参数类似,不再赘述。示例如下:

import datetime

date_obj = datetime.datetime.now()
date_str = date_obj.strftime("%Y-%m-%d %H:%M:%S")
print(date_str)

输出如下:

2022-02-09 14:20:54

三、扩展阅读

除了datetime.datetime.strptime(),Python中的datetime模块还包括以下类方法:

  • datetime.datetime.now():获取当前时间。
  • datetime.datetime.combine(date, time):将日期对象和时间对象合并为一个日期时间对象。
  • datetime.datetime.fromtimestamp(timestamp):将时间戳转化为日期时间对象。
  • datetime.datetime.date():获取日期对象。
  • datetime.datetime.time():获取时间对象。

使用这些类方法可以更加灵活地进行日期时间的操作。