1

1969 年 12 月 31 日 19:00:00 (EST) からの秒数があり、同じものを日付形式に変換したいと考えています。

無効な日付を返す次のコードがあります。ここで問題と思われることを誰でも指摘できますか。

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;


public class sample 
{

    public static void main(String args[])
    {
        DateFormat df = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss");
        df.setTimeZone(TimeZone.getTimeZone("EST"));
        Date d1 = new Date(1000*1373604190); //Converting to millisecond
         String formattedDate = df.format(d1); 
         System.out.println(formattedDate); //I'm getting 22/Dec/1969 16:50:55
    }
}

どうすればこれを解決できますか。

4

2 に答える 2

5

int数字の代わりにリテラルを使用longしています。末尾に Lintを指定しない限り、デフォルトでは整数リテラルは isです。longこれを試して:

Date d1 = new Date(1000*1373604190L);

(リテラル 1373604190 の末尾にある L に注意してください)

于 2013-08-06T04:16:16.587 に答える