Konwersja obiektu daty do obiektu kalendarza [duplikat]
To pytanie ma już odpowiedź tutaj:
- Date object to Calendar [Java] 7 odpowiedzi
Więc otrzymuję atrybut date z przychodzącego obiektu w postaci:
Tue May 24 05:05:16 EDT 2011
Piszę prostą metodę pomocniczą, aby przekonwertować ją na metodę kalendarza, używałem następującego kodu:
public static Calendar DateToCalendar(Date date )
{
Calendar cal = null;
try {
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
cal=Calendar.getInstance();
cal.setTime(date);
}
catch (ParseException e)
{
System.out.println("Exception :"+e);
}
return cal;
}
Aby zasymulować nadchodzący obiekt jestem po prostu przypisanie wartości w kodzie aktualnie używanym:
private Date m_lastActivityDate = new Date();
Jednak to daje mi wskaźnik null, gdy metoda osiągnie:
date = (Date)formatter.parse(date.toString());
4 answers
Oto Twoja metoda:
public static Calendar toCalendar(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
Wszystko inne, co robisz, jest zarówno złe, jak i niepotrzebne.
BTW, konwencje nazewnictwa Javy sugerują, że nazwy metod zaczynają się od małej litery, więc powinno to być: dateToCalendar
lub toCalendar
(Jak pokazano).
Ok, wydojmy Twój kod, dobrze?
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
DateFormat
jest używany do konwersji łańcuchów na Daty (parse()
) lub daty Na Łańcuchy (format()
). Używasz go do analizy reprezentacji łańcuchowej daty z powrotem do daty. To nie może być prawda., może?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-31 21:27:56
Wystarczy użyć Apache Commons
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-27 14:34:19
To takie proste...konwertowanie daty do kalendarza w ten sposób:
Calendar cal=Calendar.getInstance();
DateFormat format=new SimpleDateFormat("yyyy/mm/dd");
format.format(date);
cal=format.getCalendar();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-26 17:42:14
Ta funkcja zwróci obiekt sql date z obiektu java date.
public java.sql.Date convertJavaDateToSQL(Date d)
{
java.sql.Date d1= new java.sql.Date(d.getTime());
return d1;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-05 20:49:40