я имел String
в таком виде, EEE, dd MMM yy hh:mm:ss Z
, и я хотел, чтобы преобразовать его в Date
объект, так что я сделал это,предотвращение использования SimpleDateFormatter дважды
SimpleDateFormat fDate = new SimpleDateFormat("EEE, dd MMM yy hh:mm:ss Z",Locale.getDefault());
Затем я создал поле экземпляра типа Date
Date toDate = null;
и разобрать мою String
дату и сохранить его в toDate
toDate = fDate.parse(stringDate);
Теперь дата хранится в toDate
переменной в этой форме,
Tue Jan 20 07:33:06 GMT+05:30 2015
, но это не то, что я хотел. Я хотел, чтобы мой окончательный Date
объекта в таком виде,
Tue Jan 20, 2015
Таким образом, для того, чтобы достичь этого, я создал новый объект Calendar
и установите время toDate
,
Calendar s = Calendar.getInstance();
s.setTime(toDate);
я создайте новый String
и храните Day of Week
, Month
Day of Month
и year
чтобы получить такой формат Tue Jan 20, 2015
.
String newDate = s.getDisplayName(Calendar.DAY_OF_WEEK,0,Locale.getDefault()) + " "
+ s.getDisplayName(Calendar.MONTH, 0, Locale.getDefault())
+ " " + s.get(Calendar.DAY_OF_MONTH) + ","
+ s.get(Calendar.YEAR);
Теперь моя новая строка newDate
имеет дату в таком виде Tue Jan 20, 2015
и проблема это String
объекта, а не Date
объекта, и для того, чтобы преобразовать его в Date
объекта я должен использовать SimpleDateFormatter
еще раз.
Но это много работы, потому что для того, чтобы преобразовать String
этой формы, EEE, dd MMM yy hh:mm:ss Z
в Date
объект этой формы, Tue Jan 20, 2015
, я сначала с помощью SimpleDateFormatter
тогда я разбор его в Date
объекте, затем извлечь мои поля желаний из этого объекта Date
, используя Calendar
и храните в String
, а затем конвертируйте это String
обратно в объект Date
.
Есть ли более простой способ достичь этого? то есть преобразование этого String
EEE, dd MMM yy hh:mm:ss Z
непосредственно в этот формат Tue Jan 20, 2015
типа Date
без использования SimpleDateFormatter
в два раза?
«Дата» не имеет формата. «Дата» - это временная концепция. A_format_ - это то, что вы применяете для понимания или выражения этой концепции. –
, значит, вы имеете в виду объект 'Date', который никогда не может соответствовать произвольному формату? и он всегда будет равен полной дате, включая время, день, год, второй, локаль и т. д.? – bhuvesh
«Дата» представляет временную метку. День, год, секунда и т. Д. - это читаемая человеком информация. Чтобы получить эту информацию, вам нужно «форматировать» 'Date'. Это не часть «Дата». –