Groovy を使用して、タイムスタンプを DD/MM/YYYY 形式の日付に変換しようとしています
これを行うために、最初にデータベース クエリから返された Timestamp 値を取得します。形式は次のとおりです。
YYYY-MM-DD HH:MM:SS.S (the .S is actually a milisecond I guess)
そこで、新しい変数を作成し、次のように getTime() メソッドを使用してミリ秒に変換します。
def long myDate = theDate.getTime()
さて、ここで得られるもののいくつかの例は次のとおりです。
theDate (timeStamp) myDate (time in milis)
1987-01-23 00:00:00.0 : 538358400000
1959-08-26 00:00:00.0 : -326682000000
1982-12-31 00:00:00.0 : 410140800000
ここで、DD/MM/YYYY の形式で新しい日付を作成しようとすると、
def dt = new Date(myDate)
dt = dt.format("DD/MM/YYYY")
これは最終的に必要なものであり、次の値を取得します。
theDate (timeStamp) myDate (time in milis) new formatted date
1987-01-23 00:00:00.0 : 538358400000 : 23/01/1987 (Perfect)
1959-08-26 00:00:00.0 : -326682000000 : 238/08/1959 (Day is off)
1982-12-31 00:00:00.0 : 410140800000 : 365/12/1982 (Day is off)
だから私の質問は、なぜこれが奇妙な値を返すのか、それを修正するために何を変更する必要があるのですか?
ありがとう