Подтвердить что ты не робот

Как конвертировать дату в строку и на сегодняшний день?

Привет, я хочу преобразовать текущую дату в этот формат YYYY-MM-DD. Однако он преобразует дату в формат String, но я хочу преобразовать ее обратно в формат Date. Так кто может это посоветовать?

Это мой код до сих пор

 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 Date date = new Date();
 String datestring = dateFormat.format(date); 
4b9b3361

Ответ 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?

  • Java SE 8, Java SE 9, а затем
    • Встроенный.
    • Часть стандартного Java API с объединенной реализацией.
    • Java 9 добавляет некоторые незначительные функции и исправления.
  • Java SE 6 и Java SE 7
    • Большая часть функциональных возможностей java.time обратно переносится на Java 6 и 7 в ThreeTen-Backport.
  • Android

Проект ThreeTen-Extra расширяет java.time с помощью дополнительных классов. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval, YearWeek, YearQuarter и больше.