Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menukar Cap Waktu Dari Mana-mana Zon Waktu ke GMT di Java?

DDD
Lepaskan: 2024-11-12 08:19:02
asal
498 orang telah melayarinya

How to Convert a Timestamp From Any TimeZone to GMT in Java?

Cara Mengendalikan Zon Waktu Kalendar Menggunakan Java

Soalan:

Anda mempunyai Cap Masa daripada aplikasi anda yang mungkin berasal dari mana-mana Zon Waktu. Walau bagaimanapun, data mesti dihantar ke WebService yang menganggap ia sentiasa dalam GMT. Anda perlu menukar masa input pengguna daripada Zon Waktu setempat mereka kepada GMT tanpa pengetahuan mereka.

Jawapan:

Pengendalian Zon Waktu Java boleh mengelirukan. Walaupun Cap Masa biasanya disimpan dalam GMT, kelas Kalendar menggunakan Zon Waktu semasa sistem secara lalai. Untuk menangani cabaran ini, pertimbangkan perkara berikut:

import java.util.Calendar;
import java.util.TimeZone;

public class ConvertTimeZone {

    public static void main(String[] args) {
        // Example input time (EST)
        Calendar input = Calendar.getInstance(TimeZone.getTimeZone("EST"));
        input.set(2008, Calendar.MAY, 1, 18, 12, 0);

        // Create a Calendar in GMT
        Calendar gmt = convertToGmt(input);

        // Output the converted time (GMT)
        System.out.println(gmt.getTime()); // 2008-05-01 11:12:00 GMT
    }

    public static Calendar convertToGmt(Calendar cal) {
        Date date = cal.getTime();
        TimeZone tz = cal.getTimeZone();

        long msFromEpochGmt = date.getTime(); // Convert to milliseconds since epoch in GMT
        int offsetFromUTC = tz.getOffset(msFromEpochGmt);

        // Create a new Calendar in GMT and adjust for the offset
        Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
        gmtCal.setTime(date);
        gmtCal.add(Calendar.MILLISECOND, offsetFromUTC);

        return gmtCal;
    }
}
Salin selepas log masuk

Kod ini mengambil langkah berikut:

  1. Dapatkan masa semasa dalam Zon Waktu tempatan pengguna sebagai objek Kalendar.
  2. Mencipta objek Kalendar baharu dalam GMT.
  3. Mengira offset antara Zon Waktu setempat pengguna dan GMT.
  4. Laraskan Kalendar GMT dengan menambahkan offset pada masa pengguna.
  5. Objek Kalendar yang terhasil kini mewakili masa yang sama dalam GMT, tanpa mengira Zon Waktu pengguna.

Dengan menggunakan pendekatan ini, anda boleh menukar masa input pengguna dengan tepat daripada mana-mana Zon Waktu kepada GMT, memastikan keserasian data dengan WebService.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Waktu Dari Mana-mana Zon Waktu ke GMT di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan