繁体   English   中英

python中的自定义日期格式解析

[英]Custom date format parsing in python

我正在尝试在 Python 中解析'2016-04-15T12:24:20.707Z'格式的日期,尝试了 strptime ,但不起作用,我也尝试了 django parse_datetime但它只返回 none 作为值

你可以试试这样:

from datetime import datetime
date_str = '2016-04-15T12:24:20.707Z'
date = datetime.strptime(date_str, "%Y-%m-%dT%H:%M:%S.%fZ")

print(date)

输出:

2016-04-15 12:24:20.707000

转换时必须将格式指定为"%Y-%m-%dT%H:%M:%S.%fZ"

In [11]: from datetime import datetime

In [12]: out_format = "%Y-%m-%d"

In [13]: input_format="%Y-%m-%dT%H:%M:%S.%fZ"

In [14]: date_time_obj = datetime.strptime(time,input_format)

In [15]: date_time_obj
Out[15]: datetime.datetime(2016, 4, 15, 12, 24, 20, 707000)

In [16]: date_time_str = date_time_obj.strftime(out_format)

In [17]: date_time_str
Out[17]: '2016-04-15'
import dateutil.parser
from datetime import datetime 

dt = dateutil.parser.parse('2016-04-15T12:24:20.707Z')

这似乎工作正常:

import dateparser
dateparser.parse('2016-04-15T12:24:20.707Z')

> datetime.datetime(2016, 4, 15, 12, 24, 20, 707000, tzinfo=<StaticTzInfo 'Z'>)

可能iso8601包是你需要的

如果你需要一些东西,你可以尝试这种方式:

这将返回 UTC 中的当前日期时间,作为日期时间对象,然后立即将其转换为您首选的自定义格式。

from datetime import datetime, timezone
from time import strftime

# Get UTC Time datetime object and convert it to your preferred format.
print(f"Regular    : { datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M:%S') }")  # Regular    : 2022-06-04 23:08:27
print(f"Log  Format: { datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S') }")      # Log  Format: 20220604_230827
print(f"YMD  Format: { datetime.now(timezone.utc).strftime('%Y-%m-%d') }")           # YMD  Format: 2022-06-04
print(f"Time Format: { datetime.now(timezone.utc).strftime('%H:%M:%S') }")           # Time Format: 23:08:27

# Without the f'String'
print(datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M:%S'))  # Regular    : 2022-06-04 23:08:27
print(datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S'))      # Log  Format: 20220604_230827
print(datetime.now(timezone.utc).strftime('%Y-%m-%d'))           # YMD  Format: 2022-06-04
print(datetime.now(timezone.utc).strftime('%H%M%S'))             # Time Format: 23:08:27


# Details:
# Get current DateTime in UTC
datetime.now(timezone.utc)
# datetime.datetime(2022, 6, 4, 23, 13, 27, 498392, tzinfo=datetime.timezone.utc)
type(datetime.now(timezone.utc))
# <class 'datetime.datetime'>

# Use the strftime on the datetime object directly
datetime(2022, 6, 4, 23, 13, 27, 498392, tzinfo=timezone.utc).strftime('%Y-%m-%d %H:%M:%S')
# '2022-06-04 23:13:27'
type(datetime(2022, 6, 4, 23, 13, 27, 498392, tzinfo=timezone.utc).strftime('%Y-%m-%d %H:%M:%S'))
# <class 'str'>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM