Java日期类型的绍介和操作(二十七)

Date类

Date类在java.util.Date,Date类表示特定的瞬间,精确到毫秒。(毫秒是千分之一秒)毫秒可以对时间和日期进行计算,可以把日期转换为毫秒进行计算,计算完毕,再把毫秒转换为日期。

把日期转换为毫秒,时间原点为1970年1月1日 00:00:00(英国格林威治),毫秒数就是时间原点到当前日期的毫秒数。(注意一下:中国当前的时区为GMT+8,就是东八区,所以得加上八小时)

获取当前日期的毫秒数

System.out.println(System.currentTimeMillis());

把毫秒数转换为天数为:24*60*60*1000=86400000(毫秒)

Date类的构造方法

public Date() 无参构造方法,直接获取当前时间 public Date(long date);有参构造方法,跟据毫秒值来获取时间

使用:

public Date() 无参构造方法,直接获取当前时间

    //获取当前时间
    Date date = new Date();
    System.out.println(date);
    //Mon Mar 30 23:29:33 CST 2020

public Date(long date);有参构造方法,跟据毫秒值来获取时间

//跟据0毫秒来获取时间,因为中国是在东八区,所以初始时间为8点
Date date = new Date(0L);
System.out.println(date);
//Thu Jan 01 08:00:00 CST 1970

Date类的常用的方法

现在我们常用的也就一个就是:public Long getTime();这个方法是用来获取毫秒值的,我们可以跟据毫秒值来进行日期的计算。

    //跟据0毫秒来获取时间,因为中国是在东八区,所以初始时间为8点
    Date date = new Date(0L);
    long time = date.getTime();
    System.out.println(time);   //0
    //现在的时间
    Date date1 = new Date();
    long time1 = date1.getTime();
    System.out.println(time1);  //1585582432578

DateFormat类

java.text.DateFormat是日期/时间格式化子类的抽象类,我们通过这个类权帮我们完成日期和文本之间的转换也就是可以在Date对象和String对象之间进行来回转换。

格式化:按照指定格式,从Date对象转换为String对象。String format(Date date);

解析: 按照指定的格式,从String对象转换为Date对象。Date parse(String source);

DateFormat类的使用

因为 DateFormat 类是一个抽象类,但是他只有一个子类,所以我们可以使用他的子类来进行操作,SimpleDateFormat



SimpleDateFormat类我们主要使用的就是这个的类的构造方法,别的方法我们基本上也不用。



它有四个构造方法,但是我们只用一个,就是SimpleDateFormat(String?pattern),参数就是要构建成的日期格式。

下面的两张图片就是使用的方法和格式:

上面图片中的字母使用的时候都不可以改变

使用:

格式化:

//创建SimpleDateFormat,指定日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//创建一个日期类型
Date date = new Date();
//把日期类型格式化为字符串对象
String format = simpleDateFormat.format(date);
System.out.println(format); //2020-03-30 23:52:46

解析:

    //创建SimpleDateFormat,指定日期格式
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //创建一个日期字符串
    String str = "2019-3-19 11:22:33";
    try {
        //把日期字符串解析成为日期类型
        Date parse = simpleDateFormat.parse(str);
        System.out.println(parse);  //Tue Mar 19 11:22:33 CST 2019
        //这个异常为解析异常,如果解析时格式不一样,就会抛出这个异常
    } catch (ParseException e) {
        e.printStackTrace();
    }

Calendar类

java.util.Calendar是日厉类,在Date后面出现,就是因为它的出现,所以我们替换掉了许多Date里面的方法,这个类将所有可能用到的时间信息封装为静态成员变量,方便获取。 public abstract class Calendar所以说,这一个类是一个抽象类。并且它只有一个子类,如果想用这个类,可以使用他的一个静态方法,这个静态方法能够直接返回它的子类对象。

static?Calendar getInstance()

Calendar类里面的方法和变量的绍介

我们通常使用这个类来做日期类型的计算,但是,在计算之前,我们得了解一下这个类里面的静态变量:

  • public static final int YEAR; //年
  • public static final int MONTH; //月
  • public static final int Date; //日
  • public static final int HOUR; //时
  • public static final int MINUTE; //分
  • public static final int SECOND; //秒

常用的方法:

public void setTime(Date?date) 使用给定的?Date设置此日历的时间

public Date getTime() 获取此日历的时间

public int get(Date?date) 返回给定日厉字段的值

public void add(Date?date) 根据指定的规则,给指定的日厉添加或者减少时间

Calendar类的使用

创建一个Calendar类

    Calendar instance = Calendar.getInstance();

public void setTime(Date?date) 使用给定的?Date设置此日历的时间

public Date getTime() 获取此日历的时间

    Calendar cal = Calendar.getInstance();
    //创建一个原点时间
    Date date = new Date(0L);
    //设置日厉为原点时间
    cal.setTime(date);
    //获取日厉现在的时间
    Date time = cal.getTime();
    System.out.println(time);   //Thu Jan 01 08:00:00 CST 1970

public int get(Date?date) 返回给定日厉字段的值

    Calendar cal = Calendar.getInstance();
    //创建一个原点时间
    Date date = new Date(0L);
    //设置日厉为原点时间
    cal.setTime(date);
    //通过get方法来获取指定的年份
    int year = cal.get(Calendar.YEAR);
    System.out.println(year);   //1970
    //通过get方法来获取指定的月份
    int monday = cal.get(Calendar.MONDAY);
    //因为国外的月份都是从0开始的,所以如果我们想用的话,得加上1
    System.out.println(monday + 1);

public void add(Date?date) 根据指定的规则,给指定的日厉添加或者减少时间

我们通常跟据这个方法来计算时间

    Calendar cal = Calendar.getInstance();
    //创建一个原点时间
    Date date = new Date(0L);
    //设置日厉为原点时间
    cal.setTime(date);
    //通过给定的日厉字段来进行年份加一的操作
    cal.add(Calendar.YEAR, 1);
    System.out.println(cal.getTime());  //Fri Jan 01 08:00:00 CST 1971
    //通过给定的日厉字段来进行年份减一的操作
    cal.add(Calendar.YEAR, -1);
    System.out.println(cal.getTime());  //Thu Jan 01 08:00:00 CST 1970
    //在操作的时候,只要给定日厉字段,用正数是加上,用负数是减去


细节决定成败!

个人愚见,如有不对,恳请扶正!

原文地址:https://www.cnblogs.com/xdtg/p/12602533.html

时间: 2024-10-09 19:53:24

Java日期类型的绍介和操作(二十七)的相关文章

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

2017-4-2 在 Java 中使用 java.util.Date 和 java.util.Calendar 表示时间.日期类型.在 Mysql 中使用 YEAR.DATE.TIME.TIMESTAMP.DATETIME 五种数据类型表示时间日期,由此引出了 Java 日期类型跟数据库的日期类型怎么映射的问题.本文总结了使用 Hibernate @Temporal 注解的解决方案. 使用 @Temporal 注解修饰 Java 实体类的数据类型 指定 @Temporal value 属性,其中

Java中日期类型和mysql中日期类型进行整合

1. java与mysql中日期.时间类型总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59 timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038 date 3bytes xxxx-x

java日期操作大全

摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http://iamin.blogdriver.com/iamin/847990.html /**           *  取得指定月份的第一天           *           *  @param  strdate  String           *  @return  String   

DateTimeHelper【日期类型与字符串互转以及日期对比相关操作】

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 实现日期和字符串之间的转换以及日期的相关操作: 1.日期格式的字符串输出为Date类型: 2.将Date类型以指定格式输出: 3.将日期格式的字符串以指定格式输出: 4.将时间戳转化为固定格式的日期字符串 : 5.将时间戳转化为指定格式日期的字符串: 6.当前时间提前一个月: 7.当前时间延后一个月: ...... 效果图 暂不需要 代码分析 注意:new SimpleDateFormat的构造函数中必须含有Locale.CHINA或者

java mysql 日期类型

mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59 timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038 date 3bytes xxxx-xx-xx 1000-01-01到9999-12-31 year 1bytes xxxx 1901到2155 time 3bytes x

java和mysql之间的时间日期类型传递

mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038date 3bytes xxxx-xx-xx 1000-01-01到9999-12-31year 1bytes xxxx 1901到2155time 3bytes xx:xx

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());   //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;   //得到秒数,Date类型的getTime()返回毫秒数 2.由long类型转换成Date类型SimpleDat

Java日期的格式String类型GMT,GST换算成日期Date种类

请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中常常会须要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候仅仅能获取String类型的日期了,这是由于SQLite是无类型的.这样不得不面对将String 类型的日

java Data、String、Long三种日期类型之间的相互转换

java Data.String.Long三种日期类型之间的相互转换 // date类型转换为String类型 // formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒 // data Date类型的时间 public static String dateToString(Date data, String formatType) { return new SimpleDateFormat(formatType).format(data