私は、文字列形式の日付のmilisecond値を返すメソッドを作成しました。何らかの理由で、将来39000年の日付を与えています。なぜどんなアイデア?このコードは、なぜ私に将来39k年の日付を与えるのですか?
private long getTimeInMs(String currentStartTimeString) {
//String newDateString = currentStartTimeString.substring(6,10)+"-"+currentStartTimeString.substring(3, 5)+"-"+currentStartTimeString.substring(0, 2)+ "T" + currentStartTimeString.substring(11);
String newDateString = currentStartTimeString.substring(0,19);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long timeInMs;
try {
timeInMs = df.parse(newDateString).getTime();
} catch (ParseException e) {
log.error("Failed to parse current Start Time",e);
return 0;
}
return timeInMs;
}
私は日付文字列を入力すると、 "2009-07-07 10:51:01.15" それは実際に水8月6日である1246960261000 41484午前11時16分40秒を返しGMT + 0100(GMT夏時間)
をこれは、Javaのepocを越えてmsを与えているということで、私はUNIXの時代に対して評価していると思います...
jodatimeの使用をお勧めします。手でJavaの日付を解析するのは地獄です。 –
この場合、Jodaは何も簡単にしません。それでもフォーマットパターンを指定する必要があります。 – skaffman
124960261000は、ミリ秒ではなく将来の39k年と判断されたときに、秒と解釈されていますか? – nos