将utc时间添加到python文件名

将utc时间添加到python文件名,python,string,datetime,Python,String,Datetime,如何以UTC时间(小时和分钟的祖鲁风格:0100Z)获取当前时间,并将其添加到字符串中,以便连接它 这使我无法连接字符串: import datetime utc_datetime = datetime.datetime.utcnow() utc_datetime.strftime("%Y-%m-%d-%H%MZ") //Result: '2011-12-12-0939Z' filename = '/SomeDirectory/AnotherDirectory/FilePrefix_'+utc_

如何以UTC时间(小时和分钟的祖鲁风格:0100Z)获取当前时间,并将其添加到字符串中,以便连接它

这使我无法连接字符串:

import datetime
utc_datetime = datetime.datetime.utcnow()
utc_datetime.strftime("%Y-%m-%d-%H%MZ") //Result: '2011-12-12-0939Z'
filename = '/SomeDirectory/AnotherDirectory/FilePrefix_'+utc_datetime+'.txt'
这为文件名提供了另一个字符串:

//返回:/SomeDirectory/AnotherDirectory/FilePrefix_2011-12-12 09:42:15.374022.txt

import datetime
utc_datetime = datetime.datetime.utcnow()
utc_datetime.strftime("%Y-%m-%d-%H%MZ") //Result: '2011-12-12-0939Z'
filename = '/SomeDirectory/AnotherDirectory/FilePrefix_'+str(utc_datetime)+'.txt' 

提前感谢

您想做的可能是:

import datetime
utc_datetime = datetime.datetime.utcnow()
formated_string = utc_datetime.strftime("%Y-%m-%d-%H%MZ") //Result: '2011-12-12-0939Z'
filename = '/SomeDirectory/AnotherDirectory/FilePrefix_%s.txt'% formated_string
或者以一种线性方式:

filename = '/SomeDirectory/AnotherDirectory/FilePrefix_%s.txt'%datetime.datetime.utcnow().strftime("%Y-%m-%d-%H%MZ")
当使用它时,将返回按需要格式化的字符串,它不会修改datetime对象


编辑:使用
%s
而不是
+
,谢谢Danilo Bargen

您需要将
utc\u datetime.strftime()的结果保存到变量中:

>>> import datetime
>>> utc_datetime = datetime.datetime.utcnow()
>>> s=utc_datetime.strftime("%Y-%m-%d-%H%MZ")
>>> filename = '/SomeDirectory/AnotherDirectory/FilePrefix_' + s + '.txt'
>>> print filename
/SomeDirectory/AnotherDirectory/FilePrefix_2011-12-12-0946Z.txt
>>> 

您当前正在计算一个值并丢弃字符串结果。

datetime对象的
strftime
方法只返回一个值,但不操作原始对象。您需要将结果保存到变量本身或新变量中

import datetime
utc_datetime = datetime.datetime.utcnow().strftime("%Y-%m-%d-%H%MZ")
utc_datetime //Result: '2011-12-12-0939Z'
此外,您不应该使用
+
来连接多个字符串,因为。改用这个:

filename = '/directory/prefix_%s.txt' % utc_datetime

由于性能原因,不应使用
+
连接多个字符串。改为使用
filename='/directory/prefix_u%s.txt'%datetime.datetime.utcnow().strftime(“%Y-%m-%d-%H%MZ”)