首页 > 解决方案 > 使用python从字符串格式时间戳中提取日期

问题描述

将 IST 2021 年 2 月 7 日星期日 15:12:22 转换为 07/02

我无法使用时间戳/日期时间库读取此数据

我努力了 :

from datetime import datetime
timestamp = Sun Feb 07 14:58:52 IST 2021
dt_obj = datetime.fromtimestamp(timestamp).strftime('%d-%m-%y') 
  
print("date:",dt_obj)

标签: pythondatetimetimestamp

解决方案


以下代码首先将日期字符串解析为日期时间对象,然后使用该对象格式化所需的日期字符串。我已经包含解释每个使用的日期字符串格式化程序的注释 - 一个注释;如果 IST 出现在 time.tzname 中,则 %Z (对于时区)只会将 IST 识别为有效的时区,否则它将引发异常。如果您为此苦苦挣扎,则始终可以在调用 strptime 之前将 IST 替换为日期字符串中的通用(GMT 或 UTC)。

import datetime 
import time

datestr = "Sun Feb 07 15:12:22 IST 2021"
# %a is day of week, eg Sun
# %b is abbrev month, eg Feb
# %d is zero-padded day of monthe, eg 07
# %H:%M:%S is 24-hour time hh:mm:ss
# %Z is timezone name - NB IST will need to be in time.tzname for your locale
# %Y is 4-digit year
dateobj = datetime.datetime.strptime(datestr, "%a %b %d %H:%M:%S %Z %Y")
print(dateobj.strftime("%d/%m"))

推荐阅读