0

別のタイムゾーンから現在の時刻 (今) を取得したい。

たとえば、joda datetime ライブラリを使用すると、

JODA datetime を使用するようにオーストラリアのタイムゾーンを取得できます

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

とその現在の時刻

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

この DateTime オブジェクトを java.sql.Timestamp オブジェクトに変換したい場合

を使用してミリ秒を取得する必要があります

新しい 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 に答える