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
。有谁可以帮我解决这个问题?
答案 0 :(得分:2)
我不知道这是否是你要找的东西:
for (int n=0; n<=100; n++) { //where ; was before
Sum +=n; // same as Sum = Sum +n;
System.out.println (Sum);
}
这将为您提供所需的十六进制数字。如果您希望它们在列表中,您可以将它们中的每一个附加到空列表中。
答案 1 :(得分:1)
如果你打印:
dt = dt.strftime('%Y%m%d%H%M%S')
print list(dt)
你会得到:
[&#39; 2&#39;,&#39; 0&#39;,&#39; 1&#39;,&#39; 5&#39;,&#39; 1&#39;,& #39; 2&#39;,&#39; 2&#39;,&#39; 9&#39;,&#39; 0&#39;,&#39; 8&#39;,&#39; 3&# 39;,&#39; 7&#39;,&#39; 3&#39;,&#39; 2&#39;]
如果您转换为十六进制:
t = dt.decode("hex")
print list(t)
你会得到:
[&#39; &#39;,&#39; \ x15&#39;,&#39; \ x12&#39;,&#39;)&#39;,&#39; \ x08&#39;,&#39; B& #39;,&#39; \ x07&#39;]
像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
如果您担心性能问题,我的机器中的1M迭代示例(core2duo)我已删除了打印件:
@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:&#39; tst_1&#39; args:[(),{}]花了:3.6850秒
FUNC:&#39; tst_2&#39; args:[(),{}]花了:9.9950秒
因此,从字符串解码十六进制实际上需要花费2.7倍的时间。