Разбор 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"));`
Ответ 2
Я не тестировал, но что-то вроде этого, вероятно, сработало бы:
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM HH:mm:ss z yyyy");
Date date = sdf.parse(dateStr);
Если нет, попробуйте исправить его, используя документацию:
http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#toString()
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
Ответ 3
Используйте упрощенный формат. Найдите дупликацию здесь:
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Ответ 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();
}
}
}
Ответ 5
Вы можете ссылаться на этот пример на преобразовать строку в дату в java. Он имеет все форматы даты.
Кроме того, для углубленного анализа форматов дат и его функций вы можете ссылаться на ссылку ниже
https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
Ответ 6
Suppsoe вы получите строку "dateString";
SimpleDateFormat sdf = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy");
Date date = sdf.parse("dateString");