在执行 java.sql.PreparedStatement 的 setDate方法时,发现 Date类型必须为 java.sql.Date,但是在进行日期转化时,发现 java.sql.Date 无法获取时分秒。
搜索了一下,就不用setDate方法,调用 java.sql.PreparedStatement 的setTimestamp方法,设置数值,可以获取到时分秒, 日期类型为java.sql.Timestamp 。
首先java.sql.date 是为了数据库而设计的 是java.util.date 的子类。 数据库有date和datetime类型,前者是不带时分秒,后者代时分秒在不管是java.sql.date还是 java.util.date 存储为date是会丢失时分秒! 在java中 java.sql.date和 java.util.date 是不会互相丢失精度的!因为它们都有一个longtime 做为存储用。 数据->sql.date 1.如果数据库使用的是 GetDate 无疑没有时分秒,因为数据库没有 2.如果数据库使用的是gettime 时分秒就不会丢失 所以总算是明白了java.sql.date的时分秒的问题!Date date = new Date()DateFormat df1 = DateFormat.getDateInstance()//日期格式,精确到日
System.out.println(df1.format(date))
DateFormat df2 = DateFormat.getDateTimeInstance()//可以精确到时分秒
System.out.println(df2.format(date))
DateFormat df3 = DateFormat.getTimeInstance()//只显示出时分秒
System.out.println(df3.format(date))
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)
System.out.println(df4.format(date))
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)
System.out.println(df5.format(date))
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)System.out.println(df6.format(date))
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)System.out.println(df7.format(date))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)