2010-11-08 26 views

Respuesta

5

Convierta su java.sql.Timestamp en java.sql.Date y envíela a través de un calendario.

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

Creo que 'Calendar.get()' devuelve un número entero. Por lo tanto, esto significa que aún debe crear una cadena de representación para el día de la semana. –

+3

No hay absolutamente ninguna necesidad de construir una nueva fecha en él. El 'Timestamp' es una ** subclase ** de' java.util.Date'. Entonces 'cal.setTime (ts)' hubiera funcionado tan bien. Además, la práctica recomendada es obtener el calendario por su fábrica abstracta como 'Calendar cal = Calendar.getInstance()'. – BalusC

+0

Respuesta mejorada :) – bwawok

2

SimpleDateFormat proporcionará una representación específica Locale utilizando el patrón de "EEEE": Uso

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); 
      } 

Ejemplo:

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

rendimientos Tuesday.

Pero ten en cuenta que new SimpleDateFormat(..) es expensive.

+0

no lo uses! porque SimpleDateFormat no midió la zona horaria (https://stackoverflow.com/questions/18122608/simpledateformat-parse-loses-timezone/18124407#18124407), pero cuando configura el tiempo de largo, no lo conoce la zona horaria. –

5

Si ts es su objeto Timestamp a continuación para obtener el mes en formato de cadena:

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

y para el día de la semana:

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

¡no uses esto! cos SimpleDateFormat no midió la zona horaria (https://stackoverflow.com/questions/18122608/simpledateformat-parse-loses-timezone/18124407#18124407) pero cuando configura el tiempo de largo, no lo conoce la zona horaria! –

+0

Cualquier tiempo representado en long se representa como el número de milisegundos desde epoch. Esto es UTC. –

Cuestiones relacionadas