为这个有点广泛的问题提前道歉。
使用以下格式处理日期和时间的最合适的MySQL和Java数据类型是什么:yyyy.MM.dd hh:mm:ss
我需要能够转换日期和时间的字符串表示形式。到达给定日期格式的时间,然后将该日期和时间存储在数据库中。然后,我需要反向并转换MySQL日期&时间进入相应的Java表示
我已经阅读了很多关于Date,DateTime,ZonedDateTime的问题,但这些似乎都没有。
感谢。
答案 0 :(得分:6)
在您的情况下,mysql类型为 final double ratio_dB = txPower - rssi;
final double ratio_linear = Math.pow(10, (ratio_dB / 10));
final double r = Math.sqrt(ratio_linear);
,Java 8类型为DATETIME
。
LocalDateTime
如果驱动程序符合JDBC 4.2(最新版本的mysql Java连接器应该符合要求),您可以这样做:
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy.MM.dd hh:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateAsString, fmt);
String dateAsString = dateTime.format(fmt);
如果您的驱动程序尚未兼容,您将像{8}之前那样以LocalDateTime dateTime = rs.getObject(1, LocalDateTime.class);
preparedStatement.setObject(1, dateTime);
存储/检索DATETIME
字段。
然后您可以使用:
转换为java.sql.Timestamp
/从LocalDateTime
转换
//from LocalDateTime to Timestamp:
java.time.LocalDateTime dateTime = LocalDateTime.parse(dateAsString, fmt);
java.sql.Timestamp ts = Timestamp.valueOf(dateTime);
//from Timestamp to LocalDateTime:
java.sql.Timestamp ts = resultSet.getTimestamp();
java.time.LocalDateTime dateTime = ts.toLocalDateTime();
答案 1 :(得分:1)
使用以下格式处理日期和时间的最合适的MySQL和Java数据类型是什么:yyyy.MM.dd hh:mm:ss
最合适的MySQL类型是DATETIME。请参阅Should I use field 'datetime' or 'timestamp'?。
在持久层(jdbc类型)中使用的相应Java类型是java.sql.Timestamp。请参阅Java, JDBC and MySQL Types。
我需要能够转换日期和时间的字符串表示形式。到达给定日期格式的时间,然后将该日期和时间存储在数据库中。
正确的转换是:java.lang.String -> java.util.Date -> java.sql.Timestamp
。
java.lang.String -> java.util.Date
: Date javaDatetime = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss").parse(stringDatetime);
java.util.Date -> java.sql.Timestamp
: Timestamp jdbcDatetime = new Timestamp(javaDatetime.getTime());
然后我需要反向并转换MySQL日期&时间进入相应的Java表示
做反向路径:
java.sql.Timestamp -> java.util.Date
: Date javaDatetime = new java.util.Date(jdbcDatetime.getTime());
java.lang.Date -> java.util.String
: String stringDatetime = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss").format(javaDatetime);
我一直很简洁。您必须注意SimpleDateFormat的使用(例如,缓存已使用applyPattern和setLenient初始化的实例)。
答案 2 :(得分:0)
您可以通过以下方式格式化代码:
SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date dateUtil = DATE_FORMAT.parse(dateEcheance);
java.sql.Date dateSql = new java.sql.Date(dateUtil.getTime());
我希望你会帮助你。