gpt4 book ai didi

java - 如何仅获取本地时间模式和本地日期模式?

转载 作者:行者123 更新时间:2023-12-02 02:50:28 24 4
gpt4 key购买 nike

我在android中有一个时间选择器。当用户选择时间时,通过 onTimeSet 方法返回两个整数(hourOfDay 和 分钟)。其签名如下所示:

public void onTimeSet(TimePicker view, int hourOfDay, int minute);

我想要的是向用户显示以本地模式选择的时间。因此,在巴西或法国,时间应视为 14:30,而在美国,时间应视为下午 2:30。目前我正在使用 joda-time 库而不是 LocalTime,因为 android 不支持最后一个。如果我能得到时间的字符串模式,问题就解决了,因为我可以调用 toString(String pattern) 方法。

LocalTime localTime = new LocalTime(hourOfDay, minute);
localTime.toString(pattern /* to be found */)

我的另一个选择器也有同样的问题。用户选择日期,然后返回年、月和日。在这种情况下,在巴西或法国,日期应显示为 12/01/2000,而在美国则应显示为 1/12/2000。

我该如何解决这个问题?有什么想法吗?

提前致谢

最佳答案

Joda-Time 库现在处于维护模式,团队建议迁移到 java.time 类。

使用ThreeTenABP的java.time框架图书馆。

LocalDate ld = LocalDate.of( 2017 , 1 , 23 );
LocalTime lt = LocalTime.of( 12 , 23 ) ;
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.of( ld , lt , z );

Locale l = Locale.CANADA_FRENCH ;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.LONG ).withLocale( l );
String output = zdt.format( f );

通过调用 ofLocalizedDateofLocalizedTime、使用其他 FormatStyle 对象、其他 Locale 对象进行调整以适合您的口味、其他区域。

<小时/>

关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

Joda-Time项目,现在位于 maintenance mode ,建议迁移到java.time类。

要了解更多信息,请参阅 Oracle Tutorial 。并在 Stack Overflow 上搜索许多示例和解释。规范为JSR 310 .

从哪里获取java.time类?

关于java - 如何仅获取本地时间模式和本地日期模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927526/

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