Rumah >Java >javaTutorial >Bagaimana untuk Menukar Tarikh dan Masa dengan Tepat ke Zon Waktu Berbeza di Jawa?

Bagaimana untuk Menukar Tarikh dan Masa dengan Tepat ke Zon Waktu Berbeza di Jawa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-29 09:44:30584semak imbas

How to Accurately Convert Date and Time to a Different Time Zone in Java?

Tukar Tarikh dan Masa kepada Zon Waktu Berbeza di Jawa

Apabila cuba menukar tarikh dan masa semasa kepada zon waktu yang berbeza, isu biasa timbul apabila masa output tidak konsisten dengan nilai yang dijangkakan. Untuk membetulkannya, pertimbangkan penyelesaian berikut:

<code class="java">import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class DateAndTimeZoneConversion {

    public static void main(String[] args) {
        try {
            // Get the current date and time
            Calendar currentDate = Calendar.getInstance();
            String strDate = null;
            DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
            strDate = formatter.format(currentDate.getTime());

            // Convert from current time zone to IST
            TimeZone fromTimeZone = TimeZone.getDefault();
            TimeZone istTimeZone = TimeZone.getTimeZone("IST");

            currentDate.setTimeZone(fromTimeZone);
            currentDate.add(Calendar.MILLISECOND, fromTimeZone.getRawOffset() * -1);
            if (fromTimeZone.inDaylightTime(currentDate.getTime())) {
                currentDate.add(Calendar.MILLISECOND, currentDate.getTimeZone().getDSTSavings() * -1);
            }

            // Convert to Central Standard Time (CST)
            TimeZone toTimeZone = TimeZone.getTimeZone("CST");
            currentDate.add(Calendar.MILLISECOND, toTimeZone.getRawOffset());
            if (toTimeZone.inDaylightTime(currentDate.getTime())) {
                currentDate.add(Calendar.MILLISECOND, toTimeZone.getDSTSavings());
            }

            // Print the converted time
            System.out.println("The current time in India is: " + istTimeZone.getDisplayName() + " :: " + formatter.format(currentDate.getTime()));
            System.out.println("The current time in Central Standard Time is: " + toTimeZone.getDisplayName() + " :: " + formatter.format(currentDate.getTime()));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}</code>

Kod ini menangani jurang masa dengan mengambil kira offset dan masa penjimatan siang dengan betul untuk kedua-dua zon waktu sumber dan destinasi, memastikan penukaran masa yang tepat.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Tarikh dan Masa dengan Tepat ke Zon Waktu Berbeza di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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