首页 > Java > java教程 > 正文

如何将 currentTimeMillis 转换为具有区域设置特定格式的日期?

Susan Sarandon
发布: 2024-11-01 07:14:30
原创
707 人浏览过

How to Convert currentTimeMillis to a Date with Locale-Specific Formatting?

如何将 currentTimeMillis 转换为具有区域特定格式的日期

问题:

将毫秒转换为日期时使用 SimpleDateFormat 格式,程序使用机器的日期,这可能无法代表不同时区的正确时间。

解决方案:

处理此问题优雅地,您可以使用以下方法:

  • Java.util.Date:
<code class="java">Date date = new Date(millis);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS", Locale.US);
String formattedDate = sdf.format(date);</code>
登录后复制
  • Java Time API (Java 8 ):

使用 Instant 和 ZonedDateTime:

<code class="java">Instant instant = Instant.ofEpochMilli(millis);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.of("US/Central"));

// Format the date
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS");
String formattedDate = zonedDateTime.format(formatter);</code>
登录后复制

使用 LocalDateTime:

<code class="java">LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("US/Central"));

// Format the date
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS");
String formattedDate = localDateTime.format(formatter);</code>
登录后复制
  • Joda-Time(旧版)
<code class="java">DateTime jodaTime = new DateTime(millis, DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Central")));

// Format the date
DateTimeFormatter parser1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss,SSS");
String formattedDate = parser1.print(jodaTime);</code>
登录后复制

通过使用这些方法,您可以将毫秒转换为语言环境中的日期格式 -具体方式,确保表示正确的时间。

以上是如何将 currentTimeMillis 转换为具有区域设置特定格式的日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!