tl; др
java.time.LocalDateTime.parse(
"27/12/2010 11:29" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm" )
).plusMinutes( 30 )
2010-12-27T11: 59
Совет. Если вы предполагали, что это будет момент, определенная точка навременной шкалы, примените контекст часового пояса (ZoneId
), чтобы получить ZonedDateTime
.
java.time
В вашем вопросе используются старые классы даты и времени, вызывающие беспокойство, из самых ранних версийJava, и ваш Вопрос использует проект Joda-Time, который сейчас находится в режиме обслуживания.Оба были вытеснены java.time классами, встроенными в Java 8 и более поздние версии.
В вашем строковом вводе отсутствует индикатор часовой пояс или offset-из-UTC .Так что разбери как java.time.LocalDateTime
.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm" ) ;
LocalDateTime ldt = LocalDateTime.parse( "27/12/2010 11:29" , f ) ;
ldt.toString (): 2010-12-27T11: 29
Обратите внимание, что у нет есть фактический момент,это , а не конкретная точка на временной шкале.Это только смутное представление о потенциальных моментах в диапазоне около 26-27 часов.Чтобы определить фактический момент, поместите его в контекст часового пояса (или смещения): ZonedDateTime zdt = ldt.atZone( ZoneId.of( "Pacific/Auckland" ) ) ;
.
Добавьте свои минуты.
LocalDateTime later = ldt.plusMinutes( 30 ) ;
Later.toString (): 2010-12-27T11: 59
О java.time
Фреймворк java.time встроен в Java 8 и более поздние версии.Эти классы вытесняют старые классные устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial .И поиск переполнения стека для многих примеров и объяснений.Спецификация: JSR 310 .
Вы можете обмениваться java.time объектами непосредственно с вашей базой данных.Используйте драйвер JDBC , совместимый с JDBC 4.2 или более поздней версии.Нет необходимости в строках, нет необходимости в java.sql.*
классах.
Где получить классы java.time?
- Java SE 8 , Java SE 9 , а позже
- Встроенный-в.
- Часть стандартного Java API с встроенной реализацией.
- Java 9 добавляет некоторые незначительные функции и исправления.
- Java SE 6 и Java SE 7
- Android
- Более поздние версии реализации комплекта Android классов java.time.
- Для более ранних версий Android (<26) проект <a href="https://github.com/JakeWharton/ThreeTenABP" rel="nofollow noreferrer"> ThreeTenABP адаптируется ThreeTen-Backport (упомянуто выше).См. Как использовать ThreeTenABP… .
ThreeTen-Extra Проект расширяет java.time дополнительными классами.Этот проект является полигоном для возможных будущих дополнений к java.time.Здесь вы можете найти некоторые полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more .