How do I convert microseconds into a timestamp?
我从一个未加密的.dat文件中获取了这篇文章:
代码:
00 e1 27 17 6f e6 69 c0
即十进制数63374851370000。数字的单位是微秒。
这个巨大的数字不能绕过1970年1月1日00:00:00格式,这是大多数转换器现在使用的一种格式。
所以,是的。是否有这样的转换器使用1年1月1日的格式?或者我该怎么做?
顺便说一下,时间戳是日期和时间。
事先谢谢!
您没有说您使用的是什么语言,如果是.NET语言,则可以使用:http://msdn.microsoft.com/en-us/library/z2xf7zzk.aspx对于该构造函数,输入以纳秒为单位(您确定您的数字是以毫秒为单位而不是以纳秒为单位吗?).
如果您确定它是以毫秒为单位的,那么到纳秒的转换应该很容易:1毫秒=1000 000纳秒。
但我觉得这些是纳秒而不是毫秒…
既然你已经告诉我们它是以微秒为单位的:
C十进制到YYYY-DD-MM hh:mm:ss的示例
1 2 3 4 5 6 | <wyn> long microseconds = 63370738175000000; long ticks = microseconds * 10; DateTime timestamp = new DateTime(ticks); Console.WriteLine(timestamp.ToString("yyyy dd MM hh:mm:ss")); </wyn> |
它打印:
2009年2月20日02:49:35
从yyyy-dd-mm hh:mm:ss到decimal的另一种方法
1 2 3 4 5 6 7 | <wyn> String dateString ="2009 20 02 02:49:35"; DateTime timestamp = DateTime.ParseExact(dateString,"yyyy dd MM hh:mm:ss",CultureInfo.CurrentCulture); long ticks = timestamp.Ticks; long microseconds = ticks / 10; Console.WriteLine(microseconds); </wyn> |
号
它打印:
6337069497500万
如果你想要十六进制的,只需写:
1 2 3 | <wyn> Console.WriteLine(microseconds.ToString("X")); </wyn> |
然后打印:
E1234FB3278DC0
如果你想用另一种编程语言来回答,请把这个问题加到你的问题上。
使用Java代码将微秒隐藏到日期和时间,
1 2 3 | long msec = microseconds * 1/1000; DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); dateFormat.format(msec); |
会回来的,2016年1月27日03:41:12
在爪哇中,为了将微秒转换成EDOCX1,0:
1 2 3 4 5 6 7 8 | public static Timestamp getTimestampFromMicros(long pMicros) { long millis = TimeUnit.MICROSECONDS.toMillis(pMicros); long shaaritInMicros = pMicros - TimeUnit.MILLISECONDS.toMicros(millis); Timestamp ts = new Timestamp(millis); long nanos = ts.getNanos() + TimeUnit.MICROSECONDS.toNanos(shaaritInMicros); ts.setNanos((int)nanos); return ts; } |
。