Как конвертировать календарную дату в yyyy-MM-dd
формат.
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);
Date inActiveDate = null;
try {
inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Это будет производить inActiveDate = Wed Sep 26 00:00:00 IST 2012
. Но мне нужно это 2012-09-26
. Моя цель - сравнить эту дату с другой датой в моей базе данных, используя критерии Hibernate. Поэтому мне нужен объект даты в yyyy-MM-dd
формате.
Date
чтобыyyyy-MM-dd
или разобрать строку сyyyy-MM-dd
доDate
значения ?? Чтобы отформатировать дату, просто используйтеformat1.format(date)
, чтобы разобрать ее, используйтеformat1.parse(someStringValueInTheCorrectFormat)
( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) ).format( Calendar.getInstance().getTime() );
Ответы:
Java
Date
- это контейнер для количества миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу.Когда вы используете что-то вроде
System.out.println(date)
, Java используетDate.toString()
для печати содержимого.Единственный способ изменить это - переопределить
Date
и предоставить собственную реализациюDate.toString()
. Теперь, прежде чем вы запустите свою IDE и попробуете это, я бы не стал; это только усложнит дело. Вам лучше отформатировать дату в формат, который вы хотите использовать (или отображать).Java 8+
До Java 8
Вы должны использовать ThreeTen Backport
Следующее поддерживается в исторических целях (как оригинальный ответ)
Что вы можете сделать, это отформатировать дату.
Это фактически одна и та же дата, представленная по-разному.
источник
Calendar
Calendar
Ваш код неверен. Нет смысла разбирать дату и хранить ее как объект Date.
Вы можете отформатировать объект даты календаря, когда вы хотите отобразить и сохранить его в виде строки.
источник
java.time
Ответ на MadProgrammer правильно, особенно кончик о Joda-времени . Преемник Joda-Time теперь встроен в Java 8 как новый пакет java.time . Вот пример кода в Java 8.
При работе с датой-временем (в отличие от локальной даты) часовой пояс критический. День месяца зависит от часового пояса. Например, часовой пояс Индия является
+05:30
(пять с половиной часов больше , чем UTC), в то время как Франция только один час вперед. Таким образом, у момента в новом дне в Индии одна дата, а у того же момента во Франции - «вчерашняя» дата. Создание строкового вывода без какой-либо информации о часовом поясе или смещении создает двусмысленность. Вы просили вывод YYYY-MM-DD, поэтому я предоставил, но я не рекомендую его. Вместо того,ISO_LOCAL_DATE
чтобы использоватьISO_DATE
этот вывод:2014-02-25+05:30
Дамп на консоль…
Когда беги…
Joda времени
Аналогичный код с использованием библиотеки Joda-Time , предшественника java.time.
ISO 8601
Кстати, этот формат вашей входной строки является стандартным форматом, одним из нескольких удобных форматов строки даты и времени, определенных ISO 8601 .
И Joda-Time, и java.time по умолчанию используют форматы ISO 8601 при разборе и генерации строковых представлений различных значений даты и времени.
источник
java.util.Date
объект не может представлять дату в произвольном формате, вместо этого вы должны использоватьSimpleDateFormat.format
метод, который возвращаетstring
.источник
Чтобы разобрать
java.util.Date
объект, вы должны сначала преобразовать его в строку, используя свой собственный формат.Но я верю, что вы здесь избыточны.
источник
Это отобразит вашу дату + 7 дней в формате месяц, день и год на панели окна JOption.
источник
источник
Я нашел этот код, где дата сравнивается в формате для сравнения с полем даты в базе данных ... может быть, это может быть полезно для вас ...
Когда вы преобразуете строку в дату с помощью simpledateformat, ее трудно сравнить с полем Date в базах данных mysql.
Так что конвертируйте строковую дату в формате Java, используя формат select_ST_to_DATE ('yourdate', '% m /% d /% Y') -> в этом формате, тогда вы получите точный формат даты в поле даты mysql.
http://javainfinite.com/java/java-convert-string-to-date-and-compare/
источник
источник