如何使用Joda Time将时区转换为UTC时间?

3
使用此代码
String twelveHourTime="06:00 PM";

public static DateTime convert12HourTimeTo24HourTime(String twelveHourTime) {
        DateTimeFormatter dateTimeFormatter =
                DateTimeFormat.forPattern(AppConstants.TWELVE_HOUR_TIME_FORMAT);
        DateTime dateTime = dateTimeFormatter.parseDateTime(twelveHourTime);
        return  new DateTime().withHourOfDay(dateTime.getHourOfDay())
                .withMinuteOfHour(dateTime.getMinuteOfHour());
    }

我正在获取这个日期时间:
String datetime=2017-09-15T18:00:23.153+05:30

现在我想把它转换为美国时区。

请建议我如何做到这一点。


https://dev59.com/HXvaa4cB1Zd3GeqPEo92 - Ankita
3个回答

0

使用localDateTime:

DateTime dt = new LocalDateTime(timestamp.getTime()).toDateTime(DateTimeZone.UTC);

我已经尝试过这个,但它不起作用,仍然显示@RTA1。 - Adevelopment

0

你可以使用TimeZone和SimpleDateFormat来使用它:

            TimeZone time = TimeZone.getTimeZone("UTC");
            Calendar cal = Calendar.getInstance(time);
            final Date startDate = cal.getTime();
            SimpleDateFormat sdfAmerica = new SimpleDateFormat("dd-M-yyyy hh:mm:ss a");
            sdfAmerica.setTimeZone(TimeZone.getTimeZone("America/New_York"));
            String sDateInAmerica = sdfAmerica.format(startDate);

            edDate.setText(sDateInAmerica);

我应该在哪里设置我的日期时间 2017-09-15T18:00:23.153+05:30 @Shubham Sejpal - Adevelopment
我刚刚更新了代码,请尝试重新复制整个代码。 - Shubham Sejpal
好的,请等一下,让我检查一下。 - Adevelopment
2017-09-15T18:00:23.153+05:30,请问我要在哪里传递这个参数? - Adevelopment
你需要哪个国家的时间? - Shubham Sejpal
让我们在聊天中继续这个讨论 - Adevelopment

0
您可以使用SimpleDateFormat进行转换。
  DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH24:MI");
  Date date = df.parse(datetime);

我需要将2017-09-15T18:00:23.153+05:30这个美国时间格式转换。 - Adevelopment

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接