java - 基于区域设置的 Joda-Time DateTime 格式

标签 java date datetime jodatime

我从另一个系统收到一个字符串日期并且我知道该日期的区域设置(也可以从另一个系统获得)。我想将此字符串转换为 Joda-Time DateTime对象而不显式指定目标模式。

例如,我想仅使用语言环境将此字符串“09/29/2014”转换为日期对象,而不是通过将日期格式硬编码为“mm/dd/yyyy”。我无法对格式进行硬编码,因为这会根据我收到的日期的本地信息而有所不同。

最佳答案

String localizedCalendarDate = DateTimeFormat.shortDate().print(new LocalDate(2014, 9, 29));
// uses in Germany: dd.MM.yyyy
// but uses in US: MM/dd/yyyy

LocalDate date =
  DateTimeFormat.mediumDate().withLocale(Locale.US).parseLocalDate("09/29/2014");
DateTime dt = date.toDateTimeAtStartOfDay(DateTimeZone.forID("America/Los_Angeles"));

如您所见,您还需要知道时钟时间(=示例中的开始时间)和时区(示例中的美国加利福尼亚州),以便将解析的日期转换为全局时间戳,如 日期时间

关于java - 基于区域设置的 Joda-Time DateTime 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102295/

相关文章:

MySQL varchar timestamp 列存储两种不同的方式

python - PeeWee TimestampField 检索为 DateTime

java - 如何将按钮添加到 Android 中的推送通知

java - ExecutorService线程很慢

php - 根据 PHP 语言环境获取日期格式

c# - 日期验证器/格式

java - 从 json 响应创建 java 模型

java - 如何在 Java 中为多个组合使用复选框的开关?

mysql - NOT EXISTS 条件下的查询速度问题

c++ - 将日期和时间数字转换为 time_t 并指定时区