2017-08-24 61 views
-2

我有以下已知对十六进制值和日期:36位十六进制DateTime格式

"0c133314002a" = "2017_08_24_12_52_00" 
"0d1333140002" = "2017_08_24_13_02_00" 
"0d133314000c" = "2017_08_24_13_12_00" 
"0d1333141b10" = "2017_08_24_13_21_30" 

我不能找到一种方法,从一个到另一个获得,

0d1333141b10转换为二进制就像这样“11010001001100110011000101000001101100010000” 但我没有看到任何方式,二进制然后成为DateTime。

+0

'0d133314000c'是36位,而不是12 –

+0

@ LUU永富固定 – JasonBluefire

回答

-1

找出来,十六进制被混淆和混淆。

string StupidDate = "0d1333141b10"; 

string p1 = "0" + Helpers.ArbitraryToDecimalSystem(StupidDate.Substring(6, 2), 13); 
if (p1.Length == 3) { p1 = p1.Substring(1, 2); } 
string p2 = "0" + Helpers.ArbitraryToDecimalSystem(StupidDate.Substring(2, 2), 5); 
if (p2.Length == 3) { p2 = p2.Substring(1, 2); } 
string p3 = "0" + Helpers.ArbitraryToDecimalSystem(StupidDate.Substring(4, 2), 7); 
if (p3.Length == 3) { p3 = p3.Substring(1, 2); } 
string p4 = "0" + Helpers.ArbitraryToDecimalSystem(StupidDate.Substring(0, 2), 17); 
if (p4.Length == 3) { p4 = p4.Substring(1, 2); } 
string p5 = "0" + Helpers.ArbitraryToDecimalSystem(StupidDate.Substring(10, 2), 21); 
if (p5.Length == 3) { p5 = p5.Substring(1, 2); } 
string p6 = "0" + Helpers.ArbitraryToDecimalSystem(StupidDate.Substring(8, 2), 19); 
if (p6.Length == 3) { p6 = p6.Substring(1, 2); } 

string DateString = "20" + p1 + "_" + p2 + "_" + p3 + "_" + p4 + "_" + p5 + "_" + p6; 

的ArbitraryToDecimalSystem是从这里:http://www.pvladov.com/2012/07/arbitrary-to-decimal-numeral-system.html