java和数据库中⽇期类型的常见⽤法
(1)java中⽇期类型:Date、Timestamp
(2)数据库中:Date、Timestamp
(3)字符串和Date之间的格式化转换:
SimpleDateFormat类⽅法:
  format():把String格式化为Date;
  parse():把String格式化为Date;
如果需要把Date格式化,最后仍然要转换成Date类型,⽅法:
  先⽤format,再⽤parse,最终返回Date
(4)java.util.Date timeDate = dateFormat.parse(dateString);//util类型
  java.sql.Timestamp dateTime = new java.sql.Time());//java.sql.Timestamp类
  该Timestamp类型参数可以存放到Date类型参数的⽅法中(Timestamp是java.util.Date的⼦类)
(5)数据库:
  MySQL使⽤的⽇期格式(摘⾃mysql必知必会):⽆论你什么时候指定⼀个⽇期,不管是插⼊或更新表值还是⽤WHERE⼦句进⾏过滤,⽇期必须为格式yyyy-MM-dd。虽然其他的⽇期格式可能也⾏,但这是⾸选的⽇期格式,因为它排除了多义性。时间类型常⽤Date和timestamp
  由于时间类型的转换,数据库中存放date类型,实体类使⽤String存储,操作起来更⽅便
(6)Servlet中sql语句保存Date类型,拼sql时,传⼊参数为原始的Date类型,可能会出错,格式化后或者转换成java.sql.Timestamp类型则正确
(7)数据库中时间增加,还有其他函数,如:
string转date的方法  根据购车时间和排量查询所属车型的id:
  SELECT * FROM cars_info
  WHERE  '2008-10-01 00:00:00'>productiondatess AND '2008-10-01 00:00:00'
  AND enginemodel='N52B30'  其中时间去掉" 00:00:00"也可以查询
(8)从数据库中读取时间数据出来
  java.util.Date date;
  Timestamp timestamp = Timestamp(i);
  if (timestamp != null)
    date = new java.util.Time()));
==========
Java与数据库对应的⽇期类型 - CSDN博客
blog.csdn/qq_23052951/article/details/51627371
....|__java.util.Date
..........|__java.sql.Date /java.sql.Timestamp  /java.sql.Time
  【⽗类】java.util.Date⽇期格式为:年⽉⽇时分秒
  【⼦类】java.sql.Date⽇期格式为:年⽉⽇[只存储⽇期数据不存储时间数据]
  【⼦类】java.sql.Time⽇期格式为:时分秒
  【⼦类】java.sql.Timestamp⽇期格式为:年⽉⽇时分秒纳秒(毫微秒)
针对不同的数据库选⽤不同的⽇期类型
  ·Oracle的Date类型,只需要年⽉⽇,选择使⽤java.sql.Date类型
  ·MS Sqlserver和Mysql数据库的DateTime类型,需要年⽉⽇时分秒,选择java.sql.Timestamp类型
------------------------------------------
四种对象内部均使⽤系统时间作为标准数据
  ·系统时间:⾃ 1970 年 1 ⽉ 1 ⽇ 00:00:00 GMT 以来的毫秒数,即格林尼治标准时间(GMT)
  ·本地时间:根据时区不同打印出来的时间[当时区为GMT+0时,系统时间与本地时间相同]
我们使⽤的是以本地时间为参考标准的
------------------------------------------
⽣成⽇期对象
⽅法⼀:
除了⽗类,三个⼦类均可通过给其发送valueOf()消息,⽣成所需格式的对象。
java.sql.Date sqlDate = java.sql.Date.valueOf("2010-08-20");
java.sql.Time time = java.sql.Time.valueOf("13:44:53");
java.sql.Timestamp time = java.sql.Timestamp.valueOf("2010-08-20 14:06:27.186");
⽅法⼆:
·java.util.Date——>java.sql.Date
new java.sql.Date(new java.util.Date().getTime());
new java.util.Date(new java.sql.Date().getTime());//此处IDE报错
·java.util.Date——>java.sql.Timestamp
new java.sql.Timestamp(new java.util.Date().getTime());//此处IDE报错
·java.util.Date——>java.sql.Time
new java.sql.Time(new java.util.Date().getTime());
·Timestamp timestamp  = new Timestamp(System.currentTimeMillis());
------------------------------------------
我们可以使⽤DateFormat处理字符串来定义时间⽇期的格式
注:String都是先转换为java.util.Date,然后再转换成所需的格式
Calendar
Calendar Instance();
/
/获得当前时间,声明时间变量
int year = (Calendar.YEAR);
int month = (Calendar.MONTH);
month = month+1; //[0,11]
int date = (Calendar.DATE);
String today = ""+year+"-"+month+"-"+date+"";
..................................
String to Date[java.sql.Date]
String to Time[java.sql.Timestamp]
..................................
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式    dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Date dateTime = new java.sql.Time());//sql类型
// java.sql.Timestamp dateTime = new java.sql.Timestamp
(Time());//Timestamp类型
public class DateTest  {
public static void main(String[] args) throws ParseException{
try{
String dateString = "2010-08-20 12:00:00.125";
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locale.ENGLISH);//设定格式
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Time());//Timestamp类型,Time()返回⼀个long型            System.out.println(dateTime);
}catch(Exception ex){
ex.printStackTrace();
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。