異邦人になってみた~~上海生活写真ブログ

中国上海市在住です。もう10年を超えました。休日は星空(天の川)撮影やポートレート撮影等、連休時はカメラを持って中国各地を旅行してます。最近は内モンゴル自治区によく行っています。

 このブログについて(about)
  中国旅行/観光/写真記事一覧(省別)

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

ドットネットで作成した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から始まってると思います。