我需要格式化日期时间,以下列方式显示:“2014-06-04 12:05:10.000”,“2014-06-04 12:05:10.250”,“2014-06-04 12: 05:10.500“,”2014-06-04 12:05:10.750“。
我当前的日期时间是“2010-01-01 12:05:10.250000”,它是初始日期时间和递增时间的总和:
delta = datetime.timedelta(hours=0, minutes=0, seconds=0, milliseconds=250)
time = (date_initial + delta)
以下是2个问题:
1)。如何在没有毫秒的情况下添加“000”(我的意思是添加到整秒),否则我在尝试使用毫秒部分执行smth时会遇到“索引列表外”错误
datetime_split = str(time).split('.')
date_2 = datetime_split[1]
是否有更短更聪明的方法来添加除循环之外的“.000”毫秒,如“拆分 - 看看右边是否有东西”。“ - 如果不是,请添加”.000“。另外一个问题这里将是字符串格式而不是datetime。
2)。如何将毫秒格式从“.250000”更改为“.250”。再次,在手动添加“.000”之后,将它除以1000会更难,因为零会打扰。
提前致谢。试图找到一个有效的答案,但没有成功。
更新:尝试“.rstrip('0')”删除零,还试过其他人
dt.datetime.strptime(str(date), "%Y-%m-%d %H:%M:%S").strftime(str(date_bid),"%Y")
但它对我不起作用。
答案 0 :(得分:0)
这是否符合您的要求?
def formatdt(dt):
return dt.strftime('%Y-%m-%d %H:%M:%S.')+(
"%0.3f"%(dt.microsecond/10**6))[2:]
输出:
>>> formatdt(datetime.datetime(2014, 4, 1))
'2014-04-01 00:00:00.000'
>>> formatdt(datetime.datetime.now())
'2014-11-27 14:40:27.968'