Python 3.4:如何添加零毫秒并更改其格式

时间:2014-11-27 12:34:42

标签: python datetime python-3.x

我需要格式化日期时间,以下列方式显示:“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")

但它对我不起作用。

1 个答案:

答案 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'