ホームページ Java &#&チュートリアル JavaでESTタイムスタンプをGMTに変換するにはどうすればよいですか?

JavaでESTタイムスタンプをGMTに変換するにはどうすればよいですか?

Nov 12, 2024 pm 04:36 PM

How to Convert EST Timestamps to GMT in Java?

Java タイムスタンプを使用してタイム ゾーンを変換する方法

このシナリオでは、EST タイム ゾーンのタイムスタンプがあるため、それを変換する必要がありますWeb サービス呼び出しの場合は GMT まで。詳細な説明は次のとおりです。

EST から GMT への変換

タイムスタンプ値は最初は GMT であると想定されているが、実際には GMT である可能性があるために問題が発生します。ローカルタイムゾーン (この場合は EST) が異なります。ユーザーのパラメータを EST から GMT に変換するには、2 つのタイムゾーン間の時差を考慮する必要があります。

Calendar クラスの使用

を使用していますタイムスタンプを操作するための Calendar クラス。ただし、Calendar クラスは、指定したタイム ゾーンに関係なく、常にエポック以降のミリ秒単位で動作することに注意してください。これは、Calendar.getInstance(GMT_TIMEZONE) を使用してタイムスタンプからカレンダーを作成する場合、基になる日付が GMT タイム ゾーンに一致するように調整されないことを意味します。

解決策: タイム ゾーン オフセットの調整

タイムスタンプを GMT に正確に変換するには、タイム ゾーン オフセットを考慮する必要があります。次のコード スニペットは、解決策を提供します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public static Calendar convertToGmt(Calendar cal) {

 

    Date date = cal.getTime();

    TimeZone tz = cal.getTimeZone();

 

    // Compute milliseconds since epoch in GMT

    long msFromEpochGmt = date.getTime();

 

    // Get offset from UTC in milliseconds at the given time

    int offsetFromUTC = tz.getOffset(msFromEpochGmt);

 

    // Create a new Calendar in GMT and adjust the date with the offset

    Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

    gmtCal.setTime(date);

    gmtCal.add(Calendar.MILLISECOND, offsetFromUTC);

 

    return gmtCal;

}

ログイン後にコピー

出力例

現在時刻 (EDT) を ConvertToGmt メソッドに渡すと、次の出力:

1

2

3

DEBUG - input calendar has date [Thu Oct 23 12:09:05 EDT 2008]

DEBUG - offset is -14400000

DEBUG - Created GMT cal with date [Thu Oct 23 08:09:05 EDT 2008]

ログイン後にコピー

これは、12:09:05 EDT が 08:09:05 GMT に正常に変換されたことを示しています。

以上がJavaでESTタイムスタンプをGMTに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Mar 17, 2025 pm 05:35 PM

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?

2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte 2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte Mar 07, 2025 pm 06:09 PM

2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? 高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? Mar 17, 2025 pm 05:46 PM

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?

Javaで機能的なプログラミング技術を実装するにはどうすればよいですか? Javaで機能的なプログラミング技術を実装するにはどうすればよいですか? Mar 11, 2025 pm 05:51 PM

Javaで機能的なプログラミング技術を実装するにはどうすればよいですか?

node.js 20:キーパフォーマンスが向上し、新機能 node.js 20:キーパフォーマンスが向上し、新機能 Mar 07, 2025 pm 06:12 PM

node.js 20:キーパフォーマンスが向上し、新機能

Iceberg:データレイクテーブルの未来 Iceberg:データレイクテーブルの未来 Mar 07, 2025 pm 06:31 PM

Iceberg:データレイクテーブルの未来

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:43 PM

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? Mar 17, 2025 pm 05:44 PM

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?

See all articles