Я читаю в String
из текстового файла, который содержит дату в виде yyMMdd
. Затем я хочу преобразовать ее в тип date
, но когда я это делаю, она теряет свой формат.Вот пример того, что я пробовал
String strDate = matcher.group(10); // strDate would contain 111107
SimpleDateFormat formatter1 = new SimpleDateFormat("yyMMdd");
Date date = formatter1.parse(strDate); // after parsing it, the format changes to Thu Nov 03 00:00:00 EDT 2011
Но если я возьму date
и верну его обратно в строку, такую как String tDate = formatter1.format(date);
, то строка будет содержать дату в формате, который я хотел бы видеть111107
.
Есть ли способ, которым я могу это сделать?возможно, если бы я мог как-то вызвать функцию format
, чтобы вернуть объект date
вместо String
, спасибо.
Редактировать Я читаю список дат из файлаи загружаю их в карту, затем я сравниваю эти даты с текущей датой, которая также имеет формат yyMMdd
, а затем, если дата с карты более чем на неделю раньше текущей даты, я запрашиваю ввод данных пользователем, а затемзаписать дату и другую связанную информацию в файл в формате yyMMdd
.Причина, по которой я использую карту, состоит в том, что каждая строка текстового файла содержит некоторую информацию и уникальное имя, и я сравнил дату для этой конкретной строки данных, поэтому я делаю map.get(aName)
, вот код,надеюсь, это поможет
dbConnect();
stmt = conn.createStatement();
String query = "select * from OBJECT_BAC_EV where instance = 12";//VALUE <> 'Normal'";
rslt = stmt.executeQuery(query);
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyMMdd");
String dateNow = formatter.format(currentDate.getTime());
Date curDate = (Date)formatter.parse(dateNow);
currentDate.setTime(curDate);
currentDate.add(Calendar.DAY_OF_MONTH, -7);
dateNow = formatter.format(currentDate.getTime());
curDate = (Date)formatter.parse(dateNow);
Calendar cDate = Calendar.getInstance();
SimpleDateFormat f = new SimpleDateFormat("yyMMdd");
String strDate = f.format(cDate.getTime());
while(rslt.next())
{
System.out.println(rslt.getRow());
String aValue = rslt.getString("VALUE");
String aName = rslt.getString("NAME");
String aObjRef = rslt.getString("ObjRef");
if(aNoteMap.containsKey(aName))
{
String n = aNoteMap.get(aName);
if(aDateMap.get(aName).before(curDate))
{
int answer = JOptionPane.showConfirmDialog(null, "Would you like to use last weeks note? " + n, "Hey", JOptionPane.YES_NO_OPTION);
if( answer == JOptionPane.YES_OPTION)
{
output.write(aName + " " + aObjRef + " " + aValue + " " + aDateMap.get(aName) + " "
+ n + (System.getProperty("line.separator")));
}
else if( answer == JOptionPane.NO_OPTION)
{
String newNote = JOptionPane.showInputDialog("Enter new note");
output.write(aName + " " + aObjRef + " " + aValue + " " + aDateMap.get(aName) + " "
+ newNote + (System.getProperty("line.separator")));
}
}
else
output.write(aName + " " + aObjRef + " " + aValue + " " + aDateMap.get(aName) + " "
+ n + (System.getProperty("line.separator")));
}
else
output.write(aName + " " + aObjRef + " " + aValue + " " + strDate + " "
+ "" + (System.getProperty("line.separator")));
}
System.out.println("its closing output..");
output.close();
}