Как преобразовать временную метку в объект Date или DateTime?
Я извлекаю объект timestamp из базы данных с помощью ResultSet.getTimestamp()
, но мне бы хотелось получить простой способ получить дату в формате MM/DD/YYYY
и время в формате HH:MM xx
. Я возился, кажется, что я могу сделать это, используя объекты Date и/или DateTime в Java. Это лучший способ пойти, или мне даже нужно преобразовать метку времени, чтобы выполнить это? Любые рекомендации были бы полезны.
....
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...
....
}
....
Ответы
Ответ 1
java.sql.Timestamp
является подклассом java.util.Date
. Итак, просто повышайте его.
Date dtStart = resultSet.getTimestamp("dtStart");
Date dtEnd = resultSet.getTimestamp("dtEnd");
Используя SimpleDateFormat
и создав Joda DateTime
должен быть прямым с этой точки.
Ответ 2
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));
}
}
Ответ 3
Вы также можете получить объект DateTime из метки времени, включая текущее летнее время:
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);
}