是否有办法将非零填充时间字符串转换为日期时间?



我正在寻找一个strptime文档。它只指定它可以读取带有零填充字符串的格式化时间,例如'01:00pm'。是否有一种方法,我可以读一个时间像'1:00am'使用strptime函数?

您可以使用相同的格式字符串来读取像&;1:00 am &;它没有被0填充。这在技术细节部分的注释(9)中提到:

当与strptime()方法一起使用时,对于%d、%m、%H、%I、%m、%S、%j、%U、%W和%V格式,前导零是可选的。格式%y不需要一个前导零。

假设您只想填充小时,则可以使用常规字符串函数填充时间。

time_string = '1:00am'
# Splits the string where ':' is
time_string_split = time_string.split(':')
# Uses a ternary operator to check the hour digits then pads accordingly
time_string_split[0] = '0' + time_string_split[0] if len(time_string_split[0]) < 2 else time_string_split[0]
# Joins it together again with a ':'
time_string = ':'.join(time_string_split)
print(time_string) # '01:00am'

或者更简单的方法

time_string = '1:00am'
time_string_split = time_string.split(':')
if len(time_string_split[0]) < 2: 
time_string_split[0] = '0' + time_string_split[0]
time_string = ':'.join(time_string_split)
print(time_string) # '01:00am'

希望这对你有帮助!

最新更新