Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于区域设置的Joda Time-DateTime格式_Java_Date_Datetime_Jodatime - Fatal编程技术网

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

Java 基于区域设置的Joda Time-DateTime格式,java,date,datetime,jodatime,Java,Date,Datetime,Jodatime,我从另一个系统收到一个字符串日期,我知道该日期的区域设置(也可从另一个系统获得)。我希望在不显式指定目标模式的情况下将此字符串转换为对象 例如,我想将这个字符串“09/29/2014”转换为一个仅使用区域设置的日期对象,而不是将日期格式硬编码为“mm/dd/yyyy”。我不能硬编码的格式,因为这将取决于当地的日期,我收到不同的 String localizedCalendarDate = DateTimeFormat.shortDate().print(new LocalDate(2014, 9

我从另一个系统收到一个字符串日期,我知道该日期的区域设置(也可从另一个系统获得)。我希望在不显式指定目标模式的情况下将此字符串转换为对象

例如,我想将这个字符串“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"));

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

FYI,另一种语法是调用和传递一对字符。为日期部分传递一个字符,为时间部分传递另一个字符。为短样式指定“S”,为中样式指定“M”,为长样式指定“L”,为全样式指定“F”。通过指定样式字符“-”,可以省略日期或时间。