0

我想从不同的时区获取当前时间(现在)。

例如使用 joda 日期时间库,

我可以像使用 JODA 日期时间一样获得澳大利亚时区

DateTime zoned = new DateTime(DateTimeZone.forID("Australia/Melbourne"));

及其当前时间

DateTime.now(DateTimeZone.forID("Australia/Melbourne"));

如果我想将此 DateTime 对象转换为 java.sql.Timestamp 对象

,我必须得到它的毫秒使用

DateTime 类的 getMillis 方法以实例化新的时间戳对象

Timestamp zonedStamp = new TimeStamp(zoned.getMillis());

因此,每次自纪元时间以来经过的毫秒数在逻辑上对于每个时区都是相同的。

我的问题是如何获取澳大利亚时区的当前时间来获取分区时间戳对象。

谢谢你米希尔帕雷克

4

1 回答 1

1

如果您想要一个具有澳大利亚时区等效时间值Timestamp的对象,请尝试以下操作:

    Date currentTime = new Date();
    DateFormat ausFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
    ausFormat.setTimeZone(TimeZone.getTimeZone("Australia/Melbourne"));

    //get the time string in australian timezone
    String ausTime  = ausFormat.format(currentTime);

    //Convert the above time string in local date object
    DateFormat currentFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
    //optional: set the timezone as Asia/Calcutta
    currentFormat.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
    Date ausTimeInLocal = currentFormat.parse(ausTime);

    //get the time stamp object using above date object
    Timestamp ausTimeStampInLocal = new Timestamp(ausTimeInLocal.getTime());
于 2012-11-24T06:57:42.927 回答