亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python 日期時間 strptime 格式

python 日期時間 strptime 格式

炎炎設計 2023-08-08 10:19:33
我有一個日期時間字符串,例如:"2016-08-15T07:50:12"我使用模塊strptime()中的函數datetime將字符串轉換為datetime對象。我的日期時間格式是"%Y-%m-%dT%H:%M:%S.%f"當我解析上面的字符串時,由于字符串中缺少毫秒部分,該函數會引發 ValueError 。datetime當我沒有在字符串中指定它時,如何獲得毫秒為 0 的對象?
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

如果你得到像這樣的 ISO 8601 字符串:“2016-08-15T07:50:12”,我覺得最簡單的方法是使用 dateutil 來轉換它。

import dateutil.parser
yourdate = dateutil.parser.parse(datestring)


查看完整回答
反對 回復 2023-08-08
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

下面的代碼片段可能對您正在尋找的有幫助


from datetime import datetime

fmt='%Y-%m-%dT%H:%M:%S'

dt="2016-08-15T07:50:12"


datetime.strptime(dt, fmt)

datetime.datetime(2016, 8, 15, 7, 50, 12)


fmt1='%Y-%m-%dT%H:%M:%S.%f'

dt1="2016-08-15T07:50:12.34" 


datetime.strptime(dt1, fmt1)

datetime.datetime(2016, 8, 15, 7, 50, 12, 340000)

通過添加簡單的條件語句你就能實現。


查看完整回答
反對 回復 2023-08-08
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

您需要先解析不帶時區的日期,然后再添加時區。不幸的是你需要為此子類化 tzinfo 。


您可以使用下面的代碼并根據您的要求進行相應的更改。


from datetime import datetime, timedelta, tzinfo


class FixedOffset(tzinfo):

? ? """offset_str: Fixed offset in str: e.g. '-0400'"""

? ? def __init__(self, offset_str):

? ? ? ? sign, hours, minutes = offset_str[0], offset_str[1:3], offset_str[3:]

? ? ? ? offset = (int(hours) * 60 + int(minutes)) * (-1 if sign == "-" else 1)

? ? ? ? self.__offset = timedelta(minutes=offset)

? ? ? ? # NOTE: the last part is to remind about deprecated POSIX GMT+h timezones

? ? ? ? # that have the opposite sign in the name;

? ? ? ? # the corresponding numeric value is not used e.g., no minutes

? ? ? ? '<%+03d%02d>%+d' % (int(hours), int(minutes), int(hours)*-1)

? ? def utcoffset(self, dt=None):

? ? ? ? return self.__offset

? ? def tzname(self, dt=None):

? ? ? ? return self.__name

? ? def dst(self, dt=None):

? ? ? ? return timedelta(0)

? ? def __repr__(self):

? ? ? ? return 'FixedOffset(%d)' % (self.utcoffset().total_seconds() / 60)


date_with_tz = "2017-01-12T14:12:06.000-0500"

date_str, tz = date_with_tz[:-5], date_with_tz[-5:]

dt_utc = datetime.strptime(date_str, "%Y-%m-%dT%H:%M:%S.%f")

dt = dt_utc.replace(tzinfo=FixedOffset(tz))

print(dt)

查看完整回答
反對 回復 2023-08-08
  • 3 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號