Как преобразовать текущую дату в строку в Java?
java
string
date
formatting
user354299
источник
источник
Взято отсюда
источник
Calendar
желательнееDate
?источник
Используйте
DateFormat
реализацию; напрSimpleDateFormat
.источник
ТЛ; др
Лучше явно указать желаемый / ожидаемый часовой пояс.
java.time
Современный способ, начиная с Java 8 и более поздних версий, связан с фреймворком java.time .
Укажите часовой пояс, так как дата в любой момент может меняться по всему миру.
По умолчанию вы получаете строку в стандартном формате ISO 8601 .
Для других форматов используйте
java.time.format.DateTimeFormatter
класс.О java.time
Java.time каркас встроен в Java 8 и более поздних версий. Эти классы вытеснять неприятные старые устаревшие классы даты и времени , такие как
java.util.Date
,Calendar
, иSimpleDateFormat
.Проект Joda-Time , находящийся сейчас в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial . И поищите в Stack Overflow множество примеров и объяснений. Спецификация - JSR 310 .
Вы можете обмениваться объектами java.time напрямую с вашей базой данных. Используйте драйвер JDBC, совместимый с JDBC 4.2 или новее. Нет необходимости в строках, нет необходимости в
java.sql.*
занятиях.Где взять классы java.time?
Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является испытательной площадкой для возможных будущих дополнений к java.time. Вы можете найти некоторые полезные классы здесь , такие как
Interval
,YearWeek
,YearQuarter
, и более .источник
Быстрее :
источник
Для времени в формате ГГГГ-ММ-дд
А библиотека DateTime:
import org.joda.time.DateTime;
источник
DateTime
? В ответе на переполнение стека должно быть какое-то объяснение, так как этот сайт должен быть чем-то большим, чем библиотека сниппетов.Большинство ответов верны. Новая модификация JAVA API для обработки даты позволила уменьшить некоторую ранее существовавшую двусмысленность в обработке даты Java.
Вы получите сообщение о том, что такие звонки не рекомендуются.
Вышеупомянутый вызов заставил разработчика предположить, что новый объект Date предоставит объект Date с текущей меткой времени. Такое поведение не согласуется с другими классами Java API.
Новый способ сделать это - использовать экземпляр календаря .
Здесь тоже соглашение об именах не идеальное, но оно хорошо организовано. Для человека вроде меня, которому трудно что-то грабить, но который никогда ничего не забудет, если это звучит / кажется логичным, это хороший подход.
Это больше похоже на реальную жизнь
Еще один способ сделать это - использовать Joda time API.
или гораздо очевиднее
оба вернут тот же результат.
источник
java.util.Date
,java.util.Calendar
иjava.text.SimpleTextFormat
теперь наследие , вытесняется java.time классов. Кроме того, проект Joda-Time теперь находится в режиме обслуживания , и команда советует перейти на java.time.Clock
реализация в Java 8 точно такая же, как и у унаследованных классов. Только в Java 9 появилась новая реализация, способная фиксировать текущий момент с разрешением до наносекунд.источник
String
формате в свою функцию.