zoukankan      html  css  js  c++  java
  • 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.Timestamp(timeDate.getTime());//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)数据库中时间增加,还有其他函数,如:
      根据购车时间和排量查询所属车型的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 = resultSet.getTimestamp(i);
      if (timestamp != null)
         date = new java.util.Date(timestamp.getTime()));

     ==========

    Java与数据库对应的日期类型 - CSDN博客
    http://blog.csdn.net/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 calendar=Calendar.getInstance(); 
        //获得当前时间,声明时间变量 
        int year = calendar.get(Calendar.YEAR); 
        int month = calendar.get(Calendar.MONTH); 
        month = month+1; //[0,11] 
        int date = calendar.get(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.Date(timeDate.getTime());//sql类型 
        // java.sql.Timestamp dateTime = new java.sql.Timestamp 
        (timeDate.getTime());//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.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型   
                 System.out.println(dateTime);   
            }catch(Exception ex){   
                ex.printStackTrace();   
            }        
        }   
    }
  • 相关阅读:
    jquery easyui 推荐博客 (MVC+EF+EasyUI+Bootstrap)
    添加主键
    SSAS IIS 发布
    NLB
    实现验证码图像文字的识别(C#调用DLL)
    c#中高效的excel导入sqlserver的方法
    C# 控件的缩写
    c#3.0提供的扩展方法
    菜鸟谈谈C#中的构造函数和析构函数
    C#对注册表的操作
  • 原文地址:https://www.cnblogs.com/rogge7/p/7832907.html
Copyright © 2011-2022 走看看