ホームページ >Java >&#&チュートリアル >Javaで日付と時刻を別のタイムゾーンに正確に変換するにはどうすればよいですか?

Javaで日付と時刻を別のタイムゾーンに正確に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-29 09:44:30569ブラウズ

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

Java で日付と時刻を別のタイムゾーンに変換する

現在の日付と時刻を別のタイムゾーンに変換しようとすると、一般的な問題は、出力時間が期待値と一致しない場合に発生します。これを修正するには、次の解決策を検討してください。

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

このコードは、ソース タイム ゾーンと宛先タイム ゾーンの両方のオフセットと夏時間を適切に考慮することで時間のギャップに対処し、正確な時間変換を保証します。

以上がJavaで日付と時刻を別のタイムゾーンに正確に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。