如何以UTC时间获取当前时间(Zulu样式为小时和分钟: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'
提前致谢
答案 0 :(得分:4)
你想做的可能是:
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.strftime时,它会返回根据需要格式化的字符串,但不会修改日期时间对象。
编辑:使用%s
代替+
,感谢Danilo Bargen
答案 1 :(得分:1)
datetime对象的strftime
方法只返回一个值,但不操作原始对象。您需要将结果保存到变量本身或新变量中。
import datetime
utc_datetime = datetime.datetime.utcnow().strftime("%Y-%m-%d-%H%MZ")
utc_datetime //Result: '2011-12-12-0939Z'
此外,由于performance reasons,您不应使用+
来连接多个字符串。请改用:
filename = '/directory/prefix_%s.txt' % utc_datetime
答案 2 :(得分:0)
您需要将utc_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
>>>
您当前正在计算一个值并丢弃字符串结果。