Как конвертировать дату в строку и на сегодняшний день?
Привет, я хочу преобразовать текущую дату в этот формат YYYY-MM-DD
. Однако он преобразует дату в формат String
, но я хочу преобразовать ее обратно в формат Date
. Так кто может это посоветовать?
Это мой код до сих пор
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String datestring = dateFormat.format(date);
Ответы
Ответ 1
попробуйте следующее:
String DATE_FORMAT_NOW = "yyyy-MM-dd";
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
String stringDate = sdf.format(date );
try {
Date date2 = sdf.parse(stringDate);
} catch(ParseException e){
//Exception handling
} catch(Exception e){
//handle exception
}
Ответ 2
Используйте DateFormat#parse(String)
:
Date date = dateFormat.parse("2013-10-22");
Ответ 3
попробуйте эту функцию
public static Date StringToDate(String strDate) throws ModuleException {
Date dtReturn = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
try {
dtReturn = simpleDateFormat.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return dtReturn;
}
Ответ 4
Преобразование даты в строку с помощью этой функции
public String convertDateToString(Date date, String format) {
String dateStr = null;
DateFormat df = new SimpleDateFormat(format);
try {
dateStr = df.format(date);
} catch (Exception ex) {
System.out.println(ex);
}
return dateStr;
}
Из Преобразовать Date в String в Java
, И снова преобразуйте строку в дату
public Date convertStringToDate(String dateStr, String format) {
Date date = null;
DateFormat df = new SimpleDateFormat(format);
try {
date = df.parse(dateStr);
} catch (Exception ex) {
System.out.println(ex);
}
return date;
}
Из Преобразовать String в дату в Java
Ответ 5
Для преобразования даты в строку проверьте этот поток
Преобразовать java.util.Date в строку
И для преобразования строки на сегодняшний день попробуйте это,
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class StringToDate
{
public static void main(String[] args) throws ParseException
{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
String strDate = "14/03/2003 08:05:10";
System.out.println("Date - " + sdf.parse(strDate));
}
}
Ответ 6
TL;DR
Как преобразовать дату в строку и на сегодняшний день?
LocalDate.now().toString()
2017-01-23
... и...
LocalDate.parse( "2017-01-23" )
java.time
Вопрос использует неприятные старые классы времени, связанные с самыми ранними версиями Java. Эти классы теперь являются устаревшими, вытесняются классами java.time, встроенными в Java 8, Java 9 и более поздние версии.
Определение сегодняшней даты требует часового пояса. В любой момент времени по всему миру меняется зона.
Если вы не были предоставлены вами, применяется действующий часовой пояс вашего JVM. Это значение по умолчанию может меняться в любой момент во время выполнения, поэтому оно ненадежно. Я предлагаю вам всегда указать желаемый/ожидаемый часовой пояс.
ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate ld = LocalDate.now( z ) ;
ISO 8601
Желаемый формат YYYY-MM-DD соответствует стандарту ISO 8601.
Этот стандарт используется по умолчанию классами java.time при разборе/генерации строк. Поэтому вы можете просто вызвать LocalDate::parse
и LocalDate::toString
без указания шаблона форматирования.
String s = ld.toString() ;
Чтобы проанализировать:
LocalDate ld = LocalDate.parse( s ) ;
О java.time
Структура java.time встроена в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые legacy классы времени, такие как java.util.Date
, Calendar
и SimpleDateFormat
.
Проект Joda-Time, теперь в режим обслуживания, советуем перейти к классам java.time.
Чтобы узнать больше, см. Учебник Oracle. И поиск Qaru для многих примеров и объяснений. Спецификация JSR 310.
Где получить классы java.time?
Проект ThreeTen-Extra расширяет java.time с помощью дополнительных классов. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval
, YearWeek
, YearQuarter
и больше.