Java 时间类

一、Date类

Date:表示特定的瞬间,精确到毫秒
构造方法:
     (1)public Date():根据当前的默认毫秒值创建日期对象
     (2)public Date(long date):根据给定的毫秒值创建日期对象
成员方法:
     (1)public long getTime():获取时间,返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
     (2)public long setTime(long time):设置时间,表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
            注意:一般的获取时间,我们更常用:System.currentTimeMillis()方法。

Date类需要掌握的内容
       1、从Date得到一个毫秒值
            getTime()
       2、把一个毫秒值转换成Date
            A:构造方法实现:public Date(long date)
            B:成员方法实现:public long setTime(long time)

二、DateFormat类

程序开发中
                             String ————————>   Date
               日期控件                     转换                           数据库
                             Date    ————————>  String
DateFormat类:日期/时间格式化子类的抽象类,我们使用具体子类:SimpleDateFormat
成员方法:
      1、格式化:Date ——> String
           public final String format(Date date)
      2、解 析:String ——> Date
           public Date parse(String source)
DateFormat类的具体实现类:SimpleDateFormat
SimpleDateFormat类的构造方法
   (1)SimpleDateFormat():默认日期/时间模式
   (2)SimpleDateFormat(String pattern):给定日期/时间模式
           日期/时间模式:
                              年 y
                              月 M
                              日 d
                              时 H
                              分 m
                              秒 s

Date -- String:格式化
                // 创建日期对象
                Date d = new Date();
                // 创建格式化对象
                //第一种:默认日期/时间模式
                SimpleDateFormat sdf = new SimpleDateFormat();
                public final String format(Date date)
                String s = sdf.format(d);
                System.out.println(s);
                // 第二种:给定日期/时间模式
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                // public final String format(Date date)
                String s = sdf.format(d);
                System.out.println(s);
           String -- Date:解析
                String str = "2016-09-30 19:29:30";
                //注意:字符串解析为日期的时候,字符串格式必须和给定的字符串格式匹配
                SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date dd = sdf2.parse(str);
                System.out.println(dd);

案例自定义封装,日期和字符串相互转换的工具类
      import java.text.ParseException;
      import java.text.SimpleDateFormat;
      import java.util.Date;

/**
      * 日期和字符串相互转换的工具类
      * @author
      */
      public class DateUtil {
            private DateUtil() {
            }

/**
            * 方法的作用:把一个日期对象转成一个字符串
            * @param d 被格式化的日期对象
            * @param format 传递过来的要被转换的格式
            * @return 格式化后的字符串
            */
            public static String dateToString(Date d, String format) {
                  // SimpleDateFormat sdf = new SimpleDateFormat(format);
                  // return sdf.format(d);
                  return new SimpleDateFormat(format).format(d);
            }

/**
             * 方法的作用:把一个字符串解析成一个日期对象
             * @param s 被解析的字符串
             * @param format 传递过来的要被转换的格式
             * @return 解析后的日期对象
             * @throws ParseException
             */
             public static Date stringToDate(String s, String format) throws ParseException {
                   return new SimpleDateFormat(format).parse(s);
             }
        }

三、Calender类

Calendar类:一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如:获得下星期的日期)提供了一些方法。
日历字段:
    (1)public static final int YEAR:指示年的 get 和 set 的字段数字,指示年。
    (2)public static final int MONTH:指示月份的 get 和 set 的字段数字,指示一年中的月。
    (3)public static final int DATE:get 和 set 的字段数字,指示一个月中的某天。
    (4)public static final int HOUR_OF_DAY:get 和 set 的字段数字,指示一天中的小时。
    (5)public static final int MINUTE:get 和 set 的字段数字,指示一小时中的分钟。
    (6)public static final int SECOND:get 和 set 的字段数字,指示一分钟中的秒。
    (7)public static final int DAY_OF_YEAR:get 和 set 的字段数字,指示当前年中的天数。
    (8)public static final int DAY_OF_MONTH:get 和 set 的字段数字,指示一个月中的某天。
    (9)public static final int DAY_OF_WEEK:get 和 set 的字段数字,指示一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY。

常用方法:

(1)public static Calendar getInstance():使用默认时区和语言环境获得一个日历
           如:Calendar rightNow = Calendar.getInstance();
    (2)public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。
           // 获取年
           int year = rightNow.get(Calendar.YEAR);
           // 获取月
           int month = rightNow.get(Calendar.MONTH);
           // 获取日
           int date = rightNow.get(Calendar.DATE);
           System.out.println(year + "年" + (month + 1) + "月" + date + "日");
    (3)public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作。
           // 5年后的10天前
           c.add(Calendar.YEAR, 5);
           c.add(Calendar.DATE, -10);
    (4)public final void set(int year,int month,int date):设置当前日历的年月日
           c.set(2016, 10, 30);//注意:月是从0开始计数
案例获取任意一年的二月有多少天
      分析:
             A:键盘录入任意的年份
             B:设置日历对象的年月日
                年:A录入的数据
                月:2
                日:1
            C:把时间往前推一天,就是2月的最后一天
            D:获取这一天输出
      代码实现:
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入年份:");
            int year = sc.nextInt();
            Calendar c = Calendar.getInstance();
            c.set(year, 2, 1);
            c.add(Calendar.DATE, -1);
            System.out.println(c.get(Calendar.DATE));

拓展public static Calendar getInstance()方法设计思想扩展
       这种方法的思想:
             abstract class Person {
                   public static Person getPerson() {
                         return new Student();
                   }
             }
             class Student extends Person {
             }

时间: 2024-12-10 10:58:47

Java 时间类的相关文章

java时间类的使用

日期的使用: 1.创建日期 2.日期格式化显示 3.日期的转换 4.两个日期的大小比较.日期的加减   一些知识:       全球24个时区的瓜分       格林威治标准时间GMT 世界协调时间(世界标准时间)UTC       夏日节约时间DST       CST时间 CST却同时可以代表如下 4 个不同的时区: Central Standard Time (USA) UT-6:00 Central Standard Time (Australia) UT+9:30 China Stan

java时间类简单总结

java时间类(Data类) 1.Data类(没有考虑到国际化,好多方法已过时java.util.Data包中) 父类(是类不是接口含有直接子类3个):  日期格式为:年月日时分秒(不包含毫秒部分) 两种方式创建:带参构造方法(long型参数:Data(long log)),不带参 常用方法:after(),before(),compareTo()等方法. 直接子类:java.sql.Data(用于提供数据库日期的表示)   日期格式为:年月日(只有日期,没有时间) 该类构造函数必须是带参数的(

java 时间类Date和Calendar

Java的时间类经常用到,主要是两个类Date和Calendar,分别做下介绍. 一.Date 1.在 package java.util 类定义如下: public class Date implements java.io.Serializable, Cloneable, Comparable<Date>{} 类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串.

java时间类API

一.jdk8之前的日期时间的API测试: 1.System了中currentTimeMIllis()://返回从1970年到现在的总毫秒数 2.java.util.Date和子类java.sql.Date   //返回当前日期,后者是兼容数据库类型的日期 比如:给一个Date类的日期,可以先使用getTime()转化为毫秒数,然后作为参数传递给创建java.sql.Date的实例化作为参数,那么输出该实例化对象就是数据库兼容类型的日期. 3.simpleDateFormat  //对日期Date

Java时间类Date与Calendar的区别与使用 &#350964;

原文: http://blog.gqylpy.com/gqy/464 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

java时间类简单整合

package com.rengh.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class DateUtils {     /** 格式化时间 */     public static String formatTime(long showTime) {         return

Java中常见时间类的使用

模拟场景针对于常用的操作API,比如流操作(字符流.字节流),时间操作等,仅仅了解概念性的定义终究是无法了解该类的用途和使用方式:这种情况在使用的时候便一脸茫然,脑海中映射不到对应的知识点.本篇博客将通过一个简单的应用场景来体会这两个类的使用. 项目开发阶段,有一个关于下单发货的需求:如果今天下午三点前进行下单,那么发货时间是明天如果今天下午三点后机型下单,那么发货时间是后天如果被确定的发货时间是周日的话,那么在此时间上再加一天为最终发货时间 牛刀小试( java 原始)整体逻辑:主函数创建下单

Java Calendar类使用总结

平时在浏览一些网站时,有些网站会显示出当前时间,如现在是xx年xx月xx日 xx时xx分xx秒,在实际的开发过程中,也会涉及到日期和时间的计算,Java中提供了一个专门的类Calendar来处理日期与时间. 接下来就讲解下Calendar类的使用场景及使用方法. 1.获取Calendar实例 首先,我们看下Calendar类的定义 public abstract class Calendar implements Serializable, Cloneable, Comparable<Calen

Java中六大时间类的使用和区别

关于java中六个时间类的使用和区别 java.util.Date java.sql.Date  java.sql.Time  java.sql.Timestamp java.text.SimpleDateFormat java.util.Calendar java.util.Date日期格式为:年月日时分秒 java.sql.Date日期格式为:年月日java.sql.Time日期格式为:时分秒 java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒) 从数据库中取出来的日期