Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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 在JodaTime中的特定时区中创建datetime对象_Java_Datetime_Jodatime - Fatal编程技术网

Java 在JodaTime中的特定时区中创建datetime对象

Java 在JodaTime中的特定时区中创建datetime对象,java,datetime,jodatime,Java,Datetime,Jodatime,我有一个日期、时区和时间作为字符串,我想用该时区的日期和时间构造一个JodaTime对象。我写的代码是 String dateString = "2016-06-02"; String time = "01:00:00"; String timezone = "Australia/Brisbane"; DateTime dateInTimezone = DateTime.parse(dateString+" "+time,DateTimeFormat.forPattern("yyyy-MM-dd

我有一个日期、时区和时间作为字符串,我想用该时区的日期和时间构造一个JodaTime对象。我写的代码是

String dateString = "2016-06-02";
String time = "01:00:00";
String timezone = "Australia/Brisbane";
DateTime dateInTimezone = DateTime.parse(dateString+" "+time,DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"))
            .withZone(DateTimeZone.forID(timezone));
我希望
dateInTimezone
是用值
2016-06-02T01:00:00.000+10:00
创建的,但它是用值
2016-06-02T18:00:00.000+10:00
创建的。我的系统时区在
美国\洛杉矶
。据我所知,它将我传递的时间作为系统时区中的参数,并将其转换为我指定的时区。可能这就是为什么
01:00:00
在内部转换为
18:00:00


如何创建具有指定时间和指定时区的joda time对象,而不进行任何转换

在解析之前,将时区添加到格式化程序中:

String dateString = "2016-06-02";
String time = "01:00:00";
String timezone = "Australia/Brisbane";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
        .withZone(DateTimeZone.forID(timezone));
DateTime dateInTimezone = DateTime.parse(dateString+" "+time, formatter);

另一种选择是按您的方式执行,但是调用,但是如果在初始时区中的无效日期(例如,DST间隔之间)发生错误,则有解析失败的风险。

在解析之前将时区添加到格式化程序中:

String dateString = "2016-06-02";
String time = "01:00:00";
String timezone = "Australia/Brisbane";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
        .withZone(DateTimeZone.forID(timezone));
DateTime dateInTimezone = DateTime.parse(dateString+" "+time, formatter);
另一种选择是按您的方式执行,但调用,但如果在初始时区的无效日期(例如,DST间隔之间)发生错误,则有解析失败的风险