2010-11-08 4 views

Antwort

5

Sie konvertieren Ihre java.sql.Timestamp in eine java.sql.Date und senden sie über einen Kalender.

java.sql.Timestamp ts = rs.getTimestamp(1); 
java.util.GregorianCalendar cal = Calendar.getInstance(); 
cal.setTime(ts); 
System.out.println(cal.get(java.util.Calendar.DAY_OF_WEEK)); 
+1

Ich denke 'Calendar.get()' gibt eine Ganzzahl zurück. Das würde bedeuten, dass Sie immer noch eine darstellende Zeichenfolge für den Wochentag erstellen müssen. –

+3

Es ist absolut nicht nötig, ein neues Datum zu erstellen. Der 'Zeitstempel' ist eine ** Unterklasse ** von' java.util.Date'. Also hätte 'cal.setTime (ts)' genauso gut funktioniert. Außerdem empfiehlt es sich, den Kalender in seiner abstrakten Factory als "Calendar Cal = Calendar.getInstance()" zu erhalten. – BalusC

+0

Verbesserte Antwort :) – bwawok

2

SimpleDateFormat eine Locale spezifische Darstellung liefern, das Muster unter Verwendung von "EEEE":

public static final String getDayName(final java.util.Date date, final java.util.Locale locale) 
      { 
      SimpleDateFormat df=new SimpleDateFormat("EEEE",locale); 
      return df.format(date); 
      } 

Verwendungsbeispiel:

System.out.println(getDayName(new Date(),Locale.US)); 

kehrt Tuesday.

Aber passen Sie auf, dass new SimpleDateFormat(..)expensive ist.

+0

nicht verwenden! cos SimpleDateFormat hat die Zeitzone nicht gemessen (https://stackoverflow.com/questions/18122608/simpledateformat-parse-loses-timezone/18124407#18124407), aber wenn Sie die Zeit von zu lange einstellen, wissen Sie es nicht Zeitzone! –

5

Wenn ts ist Ihr Timestamp Objekt dann den Monat im String-Format zu erhalten:

String month = (new SimpleDateFormat("MMMM")).format(ts.getTime()); // "April" 

und für den Tag der Woche:

String day = (new SimpleDateFormat("EEEE")).format(ts.getTime()); // "Tuesday" 
+0

benutze das nicht! cos SimpleDateFormat hat keine Zeitzone gemessen (https://stackoverflow.com/questions/18122608/simpledateformat-parse-lose-timezone/18124407#18124407) aber wenn Sie die Zeit von lang einstellen, wissen Sie es nicht Zeitzone! –

+0

Jede in long dargestellte Zeit wird als Anzahl der Millisekunden seit der Epoche dargestellt. Das ist UTC. –

Verwandte Themen