在处理带时间戳的数据时,经常需要转换一个长整数,表示从将纪元(1970 年 1 月 1 日)转换为更具可读性和信息量的格式,例如“h:m:s:ms”(小时:分钟:秒:毫秒)。
在 log4j 的上下文中,检索日志记录事件的时间戳可以通过 logEvent.timeStamp 字段获得。然而,将此时间戳转换为格式化时间可能具有挑战性。
不正确的方法:
尝试直接使用除以秒数等操作来转换毫秒一个小时或使用 TimeUnit.MILLISECONDS.toMinutes() 方法将产生不正确的结果,因为转换过程涉及的不仅仅是简单的算术。
正确的解决方案:
到要准确地将毫秒时间戳转换为格式化时间字符串,我们可以利用 Java 内置的日期和时间格式化功能:
Date date = new Date(logEvent.timeStamp); DateFormat formatter = new SimpleDateFormat("HH:mm:ss.SSS"); formatter.setTimeZone(TimeZone.getTimeZone("UTC")); String dateFormatted = formatter.format(date);
此示例演示了转换过程:
其他格式选项:
Java API 提供了多种 SimpleDateFormat 日期模式来支持不同的格式样式。以下是一些常见选项:
Pattern | Output |
---|---|
"h:m:s:ms" | 03:34:56:123 |
"EEE, MMM d, yyyy hh:mm:ss a" | Wed, Mar 17, 2023 03:34:56 PM |
"yyyy-MM-dd HH:mm:ss.SSS" | 2023-03-17 15:34:56.123 |
以上是如何在 Java 中将毫秒时间戳转换为人类可读的时间字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!