我使用的是JodaTime 1.6.2。
我有一个需要转换为(Joda) LocalDateTime的LocalDate,或者是一个用于or的java.sqlTimestamp。
原因是我已经知道了如何在LocalDateTime和java.sql.Timestamp之间进行转换
LocalDateTime ldt = new LocalDateTime();
DateTimeFormatter dtf = DateTimeFormatter.forPattern("yyyy-MM-dd HH:mm:ss");
Timestamp ts = Timestamp.valueOf(ldt.toString(dtf));所以,如果我可以在LocalDate和LocalDateTime之间进行转换,那么我就可以继续转换为java.sql.Timestamp。感谢您在正确方向上的任何推动!
发布于 2012-01-25 03:03:37
JodaTime
要将JodaTime的org.joda.time.LocalDate转换为java.sql.Timestamp,只需这样做
Timestamp timestamp = new Timestamp(localDate.toDateTimeAtStartOfDay().getMillis());要将JodaTime的org.joda.time.LocalDateTime转换为java.sql.Timestamp,只需这样做
Timestamp timestamp = new Timestamp(localDateTime.toDateTime().getMillis());JavaTime
要将Java8的java.time.LocalDate转换为java.sql.Timestamp,只需执行以下操作
Timestamp timestamp = Timestamp.valueOf(localDate.atStartOfDay());要将Java8的java.time.LocalDateTime转换为java.sql.Timestamp,只需执行以下操作
Timestamp timestamp = Timestamp.valueOf(localDateTime);发布于 2015-01-08 05:54:52
使用Java 8 time API的最佳方式:
LocalDateTime ldt = timeStamp.toLocalDateTime();
Timestamp ts = Timestamp.valueOf(ldt);为了与你的模型(https://weblogs.java.net/blog/montanajava/archive/2014/06/17/using-java-8-datetime-classes-jpa)中的JPA一起使用:
@Converter(autoApply = true)
public class LocalDateTimeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime ldt) {
return Timestamp.valueOf(ldt);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp ts) {
return ts.toLocalDateTime();
}
}所以现在是相对时区独立的时间。此外,它很容易做到:
LocalDate ld = ldt.toLocalDate();
LocalTime lt = ldt.toLocalTime();格式化:
DateTimeFormatter DATE_TME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
String str = ldt.format(DATE_TME_FORMATTER);
ldt = LocalDateTime.parse(str, DATE_TME_FORMATTER);更新: postgres 9.4.1208,HSQLDB 2.4.0等无需任何对话即可理解Java 8 Time API!
发布于 2012-04-11 07:12:16
根据您的时区,您可能会损失几分钟(1650-01-01 00:00:00变成1649-12-31 23:52:58)
使用下面的代码来避免这种情况
new Timestamp(localDateTime.getYear() - 1900, localDateTime.getMonthOfYear() - 1, localDateTime.getDayOfMonth(), localDateTime.getHourOfDay(), localDateTime.getMinuteOfHour(), localDateTime.getSecondOfMinute(), fractional);https://stackoverflow.com/questions/8992282
复制相似问题