Je récupère un objet d'horodatage d'une base de données à l'aide de ResultSet.getTimestamp()
, mais j'aimerais un moyen simple d'obtenir la date au format MM/DD/YYYY
et l'heure au format HH:MM xx
. Je bricolais, il semble que je puisse le faire en utilisant les objets Date et/ou DateTime dans Java. Est-ce la meilleure façon de faire ou dois-je même convertir l'horodatage pour accomplir cela? Toute recommandation serait utile.
....
while(resultSet.next()) {
Timestamp dtStart = resultSet.getTimestamp("dtStart");
Timestamp dtEnd = resultSet.getTimestamp("dtEnd");
// I would like to then have the date and time
// converted into the formats mentioned...
....
}
....
Java.sql.Timestamp
est une sous-classe de Java.util.Date
. Donc, il suffit de upcast.
Date dtStart = resultSet.getTimestamp("dtStart");
Date dtEnd = resultSet.getTimestamp("dtEnd");
Utiliser SimpleDateFormat
et créer Joda DateTime
devrait être simple à partir de maintenant.
import Java.sql.Timestamp;
import Java.text.SimpleDateFormat;
import Java.util.Date;
public class DateTest {
public static void main(String[] args) {
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
Date date = new Date(timestamp.getTime());
// S is the millisecond
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss:S");
System.out.println(simpleDateFormat.format(timestamp));
System.out.println(simpleDateFormat.format(date));
}
}
Vous pouvez également obtenir un objet DateTime à partir de l'horodatage, y compris votre heure d'été:
public DateTime getDateTimeFromTimestamp(Long value) {
TimeZone timeZone = TimeZone.getDefault();
long offset = timeZone.getOffset(value);
if (offset < 0) {
value -= offset;
} else {
value += offset;
}
return new DateTime(value);
}