Разбор java Дата назад from toString()

У меня есть String, содержащий результат toString(), вызываемый экземпляром java.util.Date. Как я могу проанализировать это значение обратно на объект Date?

Документы Java говорят, что toString() преобразует этот объект Date в String формы:

 dow mon dd hh:mm:ss zzz yyyy

но, конечно, такого формата не существует, как "dow" или "mon".

Может кто-то, пожалуйста, помогите мне с этой проблемой. Обратите внимание, что, к сожалению, вызов toString() находится в части кода из моего контроля.

Ответы

Ответ 1

Вы должны использовать SimpleDateFormat вместо date.toString(). Таким образом, вы будете контролировать формат, который хотите использовать.

Date date = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //Or whatever format fits best your needs.
String dateStr = sdf.format(date);

Затем у вас есть строка, в которой вы можете ее проанализировать до даты...

Date date2 = sdf.parse(dateStr);

Чтобы использовать формат toString(), вам нужно установить локаль SimpleDateFormat на английский язык и использовать формат: "EEE MMM dd HH:mm:ss Z yyyy".

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", new Locale("us"));`

Ответ 4

Сначала взгляните на все форматы дат, предоставленные java Форматы дат. И вы можете использовать класс SimpleDateFormat, чтобы делать то, что вы хотите.

 public class DateFormatTest 
    { 
      public DateFormatTest() 
      { 
        String dateString = // in "dow mon dd hh:mm:ss zzz yyyy" format

        SimpleDateFormat dateFormat = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy"); 
        Date convertedDate = dateFormat.parse(dateString); 

        System.out.println("Converted string to date : " + convertedDate); 
      } 

      public static void main(String[] argv) 
      { 
        new DateFormatTest(); 
      } 
    } 
  }

Ответ 6

Suppsoe вы получите строку "dateString";

SimpleDateFormat sdf = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy");

Date date = sdf.parse("dateString");