oracle 时间戳到 jodatime 不工作

oracle timestamp to jodatime not working

我在 Oracle 的数据库中存储了一个时间戳,因为它是 AEST 时区

             25-03-17 01:04:59.916000000 AM

我想把它转换成这个 AEST 时区的 Jodatime

             2017-03-25T01:04:59.916+11:00

    String text = "2017-03-25 01:04:59.916000000 AM";
    Timestamp timestamp = Timestamp.valueOf(text);
    System.out.println("Timestamp: " + timestamp);

    DateTime dateTime = new DateTime(timestamp,AEST);
   // DateTime d=dateTime.toDateTime();
    System.out.println("DateTime: " + dateTime);

试过了,但是不行。

假设 AESTAustralia/Sidney 时区,您可以这样做:

DateTimeZone dtz = DateTimeZone.forID("Australia/Sydney");
DateTime dateTime = new DateTime(timestamp).withZoneRetainFields(dtz);
System.out.println("DateTime: " + dateTime);

输出将是:

DateTime: 2017-03-25T01:04:59.916+11:00

不幸的是,将 "AEST" 传递给 forID 方法不起作用,您必须传递等效的 ID(即 "Australia/Sidney")。