簡體   English   中英

日期格式轉換適用於 windows 但在 Linux 中出現錯誤

[英]Date format conversion works on windows but gives an error in Linux

我正在嘗試將日期格式化為特定格式。 該代碼使用 Python 3.7 在 Windows 上成功部署。 但是,它不適用於 Linux Debian 9.11 - Oython 3.5。 想不出解決辦法。 非常感謝任何幫助。

def parse_date(date_string: str, date_format: str) -> str:
    """
    '2019-04-12T00:00:00.000-07:00' --> "%Y-%m-%dT%H:%M:%S.%f%z"
    '2019-04-28T07:25:39.668Z' --> "%Y-%m-%dT%H:%M:%S.%fZ"
    """
    req_date = dt.datetime.strptime(date_string, date_format)
    return req_date.strftime("%Y-%m-%d")

適用於 windows

parse_date('2019-04-11T00:00:00.000-07:00', "%Y-%m-%dT%H:%M:%S.%f%z")

在 Linux 上失敗

parse_date('2019-04-11T00:00:00.000-07:00', "%Y-%m-%dT%H:%M:%S.%f%z")

ValueError:時間數據“2019-04-11T00:00:00.000-07:00”與格式“%Y-%m-%dT%H:%M:%S.%f%z”不匹配

預期返回值: '2019-04-11'

我最終使用正則表達式解決了這個問題並且它有效。

def parse_date_regex(date_string: str) -> str:
    """
    :return:
    """
    date = re.split('(\d{4}-\d{2}-\d{2})', date_string)
    return [res for res in date if len(res) == 10][0]

在 Python 3.5 中,您的 UTC 偏移量中不能有冒號。

格式為 +HHMM 或 -HHMM 的 UTC 偏移量(如果 object 是幼稚的,則為空字符串)。

在 Python 3.7 中更改為允許冒號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM