首页  >  文章  >  Java  >  如何在 Java 中将毫秒时间戳转换为人类可读的时间字符串?

如何在 Java 中将毫秒时间戳转换为人类可读的时间字符串?

Patricia Arquette
Patricia Arquette原创
2024-11-11 22:59:02271浏览

How to Convert Millisecond Timestamps to Human-Readable Time Strings in Java?

在 Java 中将毫秒时间戳转换为人类可读的时间字符串

在处理带时间戳的数据时,经常需要转换一个长整数,表示从将纪元(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);

此示例演示了转换过程:

  • new Date() 从毫秒值创建一个 Date 对象。
  • SimpleDateFormat 创建具有特定日期模式的格式化程序(“HH:mm:ss.SSS”表示小时、分钟、秒和毫秒)。
  • 格式化程序的时区设置为 UTC(协调世界时)以确保格式一致。
  • 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn