Python DateTime – strptime()函数
strptime()是 DateTime 中可用的另一种方法,用于将字符串格式的时间戳格式化为日期时间对象。
Syntax: datetime.strptime(time_data, format_data)
Parameter:
- time_data is the time present in string format
- format_data is the data present in datetime format which is converted from time_data using this function.
strptime() 如何工作?
这个函数有两个参数,其中一些时间被赋予的字符串和一个格式码,改变字符串入,该字符串被改变为DateTime对象按照下面给出的代码的列表。
格式代码
format code | meaning | example |
---|---|---|
%a | Abbreviated weekday name | Sun, Mon |
%A | Full weekday name | Sunday, Monday |
%w | Weekday as decimal number | 0…6 |
%d | Day of the month as a zero-padded decimal | 01, 02 |
%-d | day of the month as decimal number | 1, 2.. |
%b | Abbreviated month name | Jan, Feb |
%m | month as a zero padded decimal number | 01, 02 |
%-m | month as a decimal number | 1, 2 |
%B | Full month name | January, February |
%y | year without century as a zero padded decimal number | 99, 00 |
%-y | year without century as a decimal number | 0, 99 |
%Y | year with century as a decimal number | 2000, 1999 |
%H | hour(24 hour clock) as a zero padded decimal number | 01, 23 |
%-H | hour(24 hour clock) as a decimal number | 1, 23 |
%I | hour(12 hour clock) as a zero padded decimal number | 01, 12 |
%-I | hour(12 hour clock) as a decimal number | 1, 12 |
%p | locale’s AM or PM | AM, PM |
%M | Minute as a zero padded decimal number | 01, 59 |
%-M | Minute as a decimal number | 1, 59 |
%S | Second as a zero padded decimal number | 01, 59 |
%-S | Second as a decimal number | 1, 59 |
%f | microsecond as a decimal number, zero padded on the left side | 000000, 999999 |
%z | UTC offset in the form +HHMM or -HHMM | |
%Z | Time zone name | |
%j | day of the year as a zero padded decimal number | 001, 365 |
%-j | day of the year as a decimal number | 1, 365 |
%U | Week number of the year (Sunday being the first) | 0, 6 |
%W | Week number of the year | 00, 53 |
%c | locale’s appropriate date and time representation | Mon Sep 30 07:06:05 2013 |
%x | locale’s appropriate date representation | 11/30/98 |
%X | locale’s appropriate time representation | 10:03:43 |
%% | A literal ‘%’ character | % |
示例 1:使用 strptime 读取日期时间并获取所有时间数据的Python程序。这里我们将获取字符串格式的时间数据并提取小时、分钟、秒和毫秒
Python3
# import datetime module from datetime
from datetime import datetime
# consider the time stamp in string format
# DD/MM/YY H:M:S.micros
time_data = "25/05/99 02:35:5.523"
# format the string in the given format :
# day/month/year hours/minutes/seconds-micro
# seconds
format_data = "%d/%m/%y %H:%M:%S.%f"
# Using strptime with datetime we will format
# string into datetime
date = datetime.strptime(time_data, format_data)
# display milli second
print(date.microsecond)
# display hour
print(date.hour)
# display minute
print(date.minute)
# display second
print(date.second)
# display date
print(date)
Python3
# import datetime module from datetime
from datetime import datetime
# consider the time stamps from a list in string
# format DD/MM/YY H:M:S.micros
time_data = ["25/05/99 02:35:8.023", "26/05/99 12:45:0.003",
"27/05/99 07:35:5.523", "28/05/99 05:15:55.523"]
# format the string in the given format : day/month/year
# hours/minutes/seconds-micro seconds
format_data = "%d/%m/%y %H:%M:%S.%f"
# Using strptime with datetime we will format string
# into datetime
for i in time_data:
print(datetime.strptime(i, format_data))
Python3
#import time
import time
# get data of 4 th april 2021 at time 9 pm
print(time.strptime('04/04/21 09:31:22', '%d/%m/%y %H:%M:%S'))
# get data of 5 th april 2021 at time 9 pm
print(time.strptime('05/04/21 09:00:42', '%d/%m/%y %H:%M:%S'))
# get data of 6 th april 2021 at time 9 pm
print(time.strptime('06/04/21 09:11:42', '%d/%m/%y %H:%M:%S'))
# get data of 7 th april 2021 at time 9 pm
print(time.strptime('07/04/21 09:41:12', '%d/%m/%y %H:%M:%S'))
Python3
# import the datetime module
import datetime
# datetime in string format for may 25 1999
input = '2021/05/25'
# format
format = '%Y/%m/%d'
# convert from string format to datetime format
datetime = datetime.datetime.strptime(input, format)
# get the date from the datetime using date()
# function
print(datetime.date())
Python3
# import the datetime module
import datetime
# datetime in string format for list of dates
input = ['2021/05/25', '2020/05/25', '2019/02/15', '1999/02/4']
# format
format = '%Y/%m/%d'
for i in input:
# convert from string format to datetime format
# and get the date
print(datetime.datetime.strptime(i, format).date())
Python3
#import datetime
from datetime import datetime
# consider the datetime string in dd/mm/yyyy
# hh:mm:ss format
date = "25/05/2021 02:35:15"
# convert string datetime to dd/mm/yyyy hh:mm:ss
# format
datetime_date = datetime.strptime(date, "%d/%m/%Y %H:%M:%S")
print(datetime_date)
输出:
523000
2
35
5
1999-05-25 02:35:05.523000
示例 2:使用 strptime 的Python代码。这里我们将采用字符串格式的时间数据,并以“%d/%m/%y %H:%M:%S.%f”格式提取时间戳。
蟒蛇3
# import datetime module from datetime
from datetime import datetime
# consider the time stamps from a list in string
# format DD/MM/YY H:M:S.micros
time_data = ["25/05/99 02:35:8.023", "26/05/99 12:45:0.003",
"27/05/99 07:35:5.523", "28/05/99 05:15:55.523"]
# format the string in the given format : day/month/year
# hours/minutes/seconds-micro seconds
format_data = "%d/%m/%y %H:%M:%S.%f"
# Using strptime with datetime we will format string
# into datetime
for i in time_data:
print(datetime.strptime(i, format_data))
输出:
1999-05-25 02:35:08.023000
1999-05-26 12:45:00.003000
1999-05-27 07:35:05.523000
1999-05-28 05:15:55.523000
我们可以通过使用 strptime() 本身来获取遵循所有日期结构的时间。
语法:
time.strptime(Timestamp, ‘%d/%m/%y %H:%M:%S’)
其中时间戳包括时间和日期
示例:在结构中获取时间的Python代码:
蟒蛇3
#import time
import time
# get data of 4 th april 2021 at time 9 pm
print(time.strptime('04/04/21 09:31:22', '%d/%m/%y %H:%M:%S'))
# get data of 5 th april 2021 at time 9 pm
print(time.strptime('05/04/21 09:00:42', '%d/%m/%y %H:%M:%S'))
# get data of 6 th april 2021 at time 9 pm
print(time.strptime('06/04/21 09:11:42', '%d/%m/%y %H:%M:%S'))
# get data of 7 th april 2021 at time 9 pm
print(time.strptime('07/04/21 09:41:12', '%d/%m/%y %H:%M:%S'))
输出:
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=4, tm_hour=9, tm_min=31, tm_sec=22, tm_wday=6, tm_yday=94, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=5, tm_hour=9, tm_min=0, tm_sec=42, tm_wday=0, tm_yday=95, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=6, tm_hour=9, tm_min=11, tm_sec=42, tm_wday=1, tm_yday=96, tm_isdst=-1)
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=7, tm_hour=9, tm_min=41, tm_sec=12, tm_wday=2, tm_yday=97, tm_isdst=-1)
也可以以 yyyy-mm-dd 日期时间格式获取字符串日期时间。 yyyy-mm-dd 代表年-月-日。我们可以使用 strptime()函数将字符串格式转换为 DateTime。我们将使用 '%Y/%m/%d' 格式将字符串为日期时间。
Syntax: datetime.datetime.strptime(input,format)
Parameter:
- input is the string datetime
- format is the format – ‘yyyy-mm-dd’
- datetime is the module
首先,导入模块并给出输入日期时间字符串。现在使用 strptime 获取所需的格式并使用 date()函数从 DateTime 获取日期
示例 1 :将字符串日期时间格式转换为日期时间的Python程序
蟒蛇3
# import the datetime module
import datetime
# datetime in string format for may 25 1999
input = '2021/05/25'
# format
format = '%Y/%m/%d'
# convert from string format to datetime format
datetime = datetime.datetime.strptime(input, format)
# get the date from the datetime using date()
# function
print(datetime.date())
输出:
2021-05-25
示例 2:将字符串日期时间列表转换为日期时间
蟒蛇3
# import the datetime module
import datetime
# datetime in string format for list of dates
input = ['2021/05/25', '2020/05/25', '2019/02/15', '1999/02/4']
# format
format = '%Y/%m/%d'
for i in input:
# convert from string format to datetime format
# and get the date
print(datetime.datetime.strptime(i, format).date())
输出:
2021-05-25
2020-05-25
2019-02-15
1999-02-04
我们还可以以“%d/%m/%Y %H:%M:%S”格式显示日期时间。为此,我们将以日期-月-年小时:分钟;秒格式获取数据。所以我们必须输入日期时间字符串并获得这种格式
Syntax: datetime.strptime(input_date, “%d/%m/%Y %H:%M:%S”)
Parameter:
- datetime is the module
- input_date is the string datetime format
- strptime is used to convert input_date string into datetime
示例3: Python程序将字符串日期时间转换为“%d/%m/%Y %H:%M:%S”格式
蟒蛇3
#import datetime
from datetime import datetime
# consider the datetime string in dd/mm/yyyy
# hh:mm:ss format
date = "25/05/2021 02:35:15"
# convert string datetime to dd/mm/yyyy hh:mm:ss
# format
datetime_date = datetime.strptime(date, "%d/%m/%Y %H:%M:%S")
print(datetime_date)
输出:
2021-05-25 02:35:15