2016-05-26 12 views
1

私は2つの差分アプリケーションを使用していますが、1つはJavaを使用し、もう1つはVB.NETを使用しています。 javaアプリケーションは、JSONにオブジェクトを変換し、 Java Date.getTime()からVB.NETのDateTimeにlong値を変換します

[{"from_time":"07:30:00","end_time":"17:00:00","purpose":"","perform_date":1462035600000,"day_time":false,"night_time":false}] 

怒鳴るperform_dateとしてテキストとしてデータベースに保存:1462035600000をJavaの等しい「日5月1日午後12時00分00秒ICT 2016」で、私はこの番号を変換しようVB.NETのDateTimeが表示されますが、別の日付 "01-Jan-01 12:00:00 AM"が表示されます。

テストVB.NETコード

Dim d = New Date() 
d.AddMilliseconds(1462035600000) 
Console.WriteLine(CType(d, Date).ToString()) 

出力:

01-Jan-01 12:00:00 AM 

テストJavaコード:

long d = Long.parseLong("1462035600000"); 
performDate.setTime(d); 
System.out.println(performDate.toString()); 

出力:

Sun May 01 00:00:00 ICT 2016 

私がしたことは間違っています。私はVB.NETのnewbyです。助けてください

+1

私の答えを参照してください。 addmillisecondsを実行する日時は、1970年1月1日より前に設定する必要があります。 –

+0

はい、テストしています。 –

答えて

2

Java use unixタイムスタンプ。 1970年1月1日にあなたの日付を開始する必要があります

ICTタイムゾーンにいる場合は、おそらくdatetimeの種類としてLocaLを使用しているdatetimeを使用できます。それ以外の場合は、datetimeをUTC datetimeとして取得し、手動で7時間を追加することができます。

Dim JavaTimeStamp As Long = 1462035600000 
Dim MyDateTimeUTC as DateTime = GetUTCDateFromTimeStamp(JavaTimeStamp).addhours(7) 'Add 7 hours to match current ICT time (I had no consideration for saving time) 
Dim MyDateTimeLocal as DateTime = GetLocalDateFromTimeStamp(JavaTimeStamp) 

Public Function GetUTCDateFromTimeStamp(TimeStamp as long) As DateTime 
    static startTime As New DateTime(1970, 1, 1, 0, 0, 0,DateTimeKind.Utc) 
    return Starttime.AddMilliseconds(TimeStamp) 
End Function 

Public function GetLocalDateFromTimeStamp(TimeStamp as long) as DateTime 
     static startTime As New DateTime(1970, 1, 1, 0, 0, 0,DateTimeKind.Local) 
    return Starttime.AddMilliseconds(TimeStamp) 
End function 
+0

ありがとう、それは私のために働く。しかし、私の関数d.AddMilliseconds(1462035600000)は、新しい日付の値を設定していないので、新しい日付の値を返します。だから私はこれを書く:d = d.AddMilliseconds(1462035600000) –

0

あなたは正しい、私はハハ...良いコンバータを使用していないが、私はあなたのために何か面白いものが見つかりました:

Look at the example in VB

ように関数AddMillisecondsは、前に宣言されている日付にミリ秒を追加します。ミリ秒を追加する前に、デフォルトで日付を宣言する必要があります。

+0

ありがとう、私は答えを見つけた –

関連する問題