У меня есть дата, представленная строкой «0002-01-04T00:49:40.000», то есть дата в году 2CE. Мне нужно преобразовать его в экземпляр java.util.Date
, объединив его с идентификатором часового пояса «Etc/UTC». Следующий код показывает, как я это делаю:
public static Date toDate(LocalDateTime localDateTime, String timezoneId){
if(localDateTime == null) return null;
if(timezoneId != null) {
localDateTime.toDateTime(DateTimeZone.forID(timezoneId)).toDate();
} else {
return localDateTime.toDateTime().toDate()
}
}
Но LocalDateTime.toDate()
работает неправильно. Это добавляет +1 день к дате.
"0002-01-04T00:49:40.000Z" ---> "Чт, 5 января, 16:49:40 PST 2".
toDate()
— это метод JodaTime. - person DimaSan   schedule 30.11.2016java.util.Date.toString()
использует юлианский календарь для 0002 года! Так что я не вижу ни проблемы, ни провала. - person Meno Hochschild   schedule 30.11.2016