dt = datetime.datetime.now()
dt = dt.strftime('%Y%m%d%H%M%S')
t = dt.decode("hex")
print list(t)
正在返回[' ', '\x15', '\x12', ')', '\x10', ')', '6']
。但是它不会转换为十六进制。虽然我想有例如。年份-2015
必须\x07\xdf
转换month, date, hour, minute, second
为相应的年份hex
。有人可以帮我这个忙吗?
如果打印:
dt = dt.strftime('%Y%m%d%H%M%S')
print list(dt)
你会得到:
['2','0','1','5','1','2','2','9','0','8','3','7',' 3','2']
如果您转换为十六进制:
t = dt.decode("hex")
print list(t)
你会得到:
['','\ x15','\ x12',')','\ x08','B','\ x07']
像Jorge Torres这样的混合解决方案将是这样的:
mystr=""
mystr+=hex(dt.year)
mystr+=hex(dt.month)
mystr+=hex(dt.day)
mystr+=hex(dt.hour)
mystr+=hex(dt.minute)
mystr+=hex(dt.second)
print mystr
结果将是您想要的:
0x7df0xc0x1d0x80x2f0x6
如果您担心性能问题,以下是我的机器(core2duo)中的1M迭代示例,我已删除了打印内容:
@timeit
def tst_1():
for i in range(1000000):
dt = datetime.datetime.now()
mystr=""
mystr+=hex(dt.year)
mystr+=hex(dt.month)
mystr+=hex(dt.day)
mystr+=hex(dt.hour)
mystr+=hex(dt.minute)
mystr+=hex(dt.second)
#print mystr
@timeit
def tst_2():
for i in range(1000000):
dt = datetime.datetime.now()
dt = dt.strftime('%Y%m%d%H%M%S')
t = dt.decode("hex")
#print list(t)
结果:
func:'tst_1'args:[(),{}]花费了:3.6850秒
func:'tst_2'args:[(),{}]花费了:9.9950秒
因此,从字符串解码十六进制实际上要花费2.7倍的时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句