我需要一个日期时间来保留微秒,即使它们是0.这是一个例子:
from datetime import datetime
starttime = datetime(year=2018, month=2, day=15, hour=8, minute=0, second=0, microsecond=0)
print(starttime.isoformat())
我想用00.000000
秒打印。但它以0
秒打印。如果我放入1微秒,那么它将打印00.000001
。
问题在于我正在使用一个jquery调用,它需要在while位置使用float格式的iso格式。
答案 0 :(得分:1)
您可以使用strftime
手动格式化它:
>>> starttime = datetime(year=2018, month=2, day=15, hour=8, minute=0, second=0, microsecond=0)
>>> starttime.strftime("%Y-%m-%dT%H:%M:%S.%f")
'2018-02-15T08:00:00.000000'
Vs的:
>>> starttime.isoformat()
'2018-02-15T08:00:00'
和
>>> starttime = datetime(year=2018, month=2, day=15, hour=8, minute=0, second=0, microsecond=1)
>>> starttime.strftime("%Y-%m-%dT%H:%M:%S.%f")
'2018-02-15T08:00:00.000001'
>>> starttime.isoformat()
'2018-02-15T08:00:00.000001'
答案 1 :(得分:1)
(确认可在Python3.6之后运行,在2.7上将无法运行)
import geopandas as gpd
import contextily as ctx
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world = world[(world.name=="Germany")]
world = world.to_crs(epsg=3857)
ax = world.plot(figsize=(10, 10), color='none', linewidth=1, alpha=0.5)
ax.annotate("Berlin", xy=(1491636.9565986055, 6895388.533179172))
ctx.add_basemap(ax, url=ctx.providers.Stamen.Watercolor, zoom=9)
接受一个参数:
isoformat()
可能的值:
datetime.datetime(2020, 2, 20, 0, 0, 0, 0).isoformat(timespec='microseconds')
Out[17]: '2020-02-20T00:00:00.000000'
答案 2 :(得分:0)
通过对标准字符串转换的小操作,您可以这样做:
def force_microseconds(a_datetime):
dt_str = a_datetime.isoformat()
if '.' not in dt_str:
dt_str += '.000000'
return dt_str
import datetime as dt
starttime = dt.datetime(year=2018, month=2, day=15, hour=8,
minute=0, second=0, microsecond=0)
print(force_microseconds(starttime))
print(force_microseconds(starttime + dt.timedelta(microseconds=1) ))
2018-02-15T08:00:00.000000
2018-02-15T08:00:00.000001