gpt4 book ai didi

android - 在android中格式化日期

转载 作者:行者123 更新时间:2023-11-29 21:12:58 28 4
gpt4 key购买 nike

我正在尝试以新格式显示我已经拥有的日期,为此我正在使用 SimpleDateFormat

安卓代码

String date = "2013-08-11 20:38 EDT";
SimpleDateFormat sf = new SimpleDateFormat("dd MMMM yyyy hh:mm a");
try {
newDate = sf.format(new SimpleDateFormat("yyyy-MM-dd kk:mm z").parse(date));
} catch (ParseException e) {
e.printStackTrace();
}

它显示:2013 年 8 月 11 日下午 8:38

但是,如果我在 JAVA 中运行相同的代码(作为普通的 JAVA 控制台应用程序)

Java

String date = "2013-08-11 20:38 EDT";
SimpleDateFormat sf = new SimpleDateFormat("dd MMMM yyyy hh:mm a");
String lDate = sf.format(new SimpleDateFormat("yyyy-MM-dd kk:mm z").parse(date));
System.out.println(lDate);

它显示:2013 年 8 月 12 日上午 06:08

这是我需要显示的格式。

P.S.:我在 android 中收到警告

To get local formatting use getDateInstance(), getDateTimeInstance(), or getTimeInstance(), or use new SimpleDateFormat(String template, Locale locale) with for example Locale.US for ASCII dates.

所以我尝试将 Locale.US 添加到 SimpleDateFormat 它再次显示 2013 年 8 月 11 日 08:38 PM 而不是 12 2013 年 8 月 06:08 AM

我的问题是:如何在 android 中将日期显示为 12 August 2013 06:08 AM。

最佳答案

您的本地时间 IST 是 UTC+05:30,您的 Android 时间 EDT 是 UTC-04:00。它们加在一起解释了输出差异的 9 小时 30 分钟差异。

将您的 Android 设备设置为 IST 时区以获得相同的输出。

或者,您可以在 DateFormat 上调用 setTimeZone() 以显式设置要使用的时区。

显式打印时区信息也有助于减少日期时间戳的歧义。

关于android - 在android中格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22219672/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com