ドットネットで作成した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;