異邦人になってみた~上海の人 

読者です 読者をやめる 読者になる 読者になる

異邦人になってみた~上海の人 

上海在住です。中国時代劇をよく見ています、中国旅行の事、weiboやQQの設定、一眼レフカメラの写真掲載、上海での日々の生活情報を書いています

 記事一覧表示
スポンサーリンク

ドットネットで作成したDateTime.TicksをJAVAでDate形に変更

プログラム C#

ドットネットで作成したDateTime.TicksをJAVAでDate形に変更

.Netの日付の絶対時間の値は、協定世界時 (UTC) の 0 年 1 月 1 日午前 0 時
からをナノ秒単位で測定したものです。
Java のミリ秒の絶対時間の値は、協定世界時 (UTC) の 1970 年 1 月 1 日午前 0 時
から特定の時間までの差異をミリ秒単位で測定したものです。

ということでJavaでドットネットの値をDate型に変えたい場合、以下のようにしないといけません。


//ドットネットのDateTime.Ticksから0〜1970-01-01の日付のLongを引き、そのあとJavaのDate型に変換。
long dotnetDateTimeTicks = 635033952000000000L;//dotnet DateTime.Ticks
java.util.Date date= new java.util.Date(dotnetDateTimeTicks - 621355968000000000L) / 10000;


//ドットネットのDateTime.Ticksに変換
//今日の日付を取得
java.util.Date date1 = new java.util.Date(java.lang.System.currentTimeMillis());
long lToday = date1.getTime();
//1970-01-01〜今日の日付のLongと0〜1970-01-01の日付のLongを足す
long dotnet = lToday * 10000 + 621355968000000000L;



LinuxC言語のDateも確か1970から始まってると思います。