• java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结


    java.lang.Object
    ....|__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数据库的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类型

    Java代码 复制代码
    1. public class DateTest  {   
    2.     public static void main(String[] args) throws ParseException{   
    3.         try{   
    4.              String dateString = "2010-08-20 12:00:00.125";   
    5.              DateFormat dateFormat;   
    6.              dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locale.ENGLISH);//设定格式   
    7.              dateFormat.setLenient(false);   
    8.              java.util.Date timeDate = dateFormat.parse(dateString);//util类型   
    9.              java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型   
    10.              System.out.println(dateTime);   
    11.         }catch(Exception ex){   
    12.             ex.printStackTrace();   
    13.         }        
    14.     }   
    15. }  
    我在IBM工作,可以为大家内部推荐IBM各种职位 IBM全球职位尽在以下链接(请在浏览器中打开,QQ/微信 会阻止): http://ibmreferrals.com/ 很乐意为感兴趣的小伙伴分享:我的面试经验^_^ 如需咨询,请邮件发送以下邮箱,有问必回 1026096425@qq.com
  • 相关阅读:
    docker 容器启动初始化,centos镜像启动并执行
    odoo 分布式session 失效解决方案
    文件分布式存储 minio docker
    odoo reports 报表打印pdf初探
    odoo 分布式快速更新
    linux Warning: Stopping docker.service, but it can still be activated by:
    linux 查看80端口的连接数
    css flex 涨姿势了
    odoo 后台打印日志修改
    iOS 导航栏消失
  • 原文地址:https://www.cnblogs.com/jackydalong/p/3144612.html
Copyright © 2020-2023  润新知