JavaApi高级编程(四)Date类以及如何使用

简介: JavaApi高级编程(四)Date类以及如何使用

一、Date的基本概念以及使用


1、Date 类表示日期和时间(该类大部分方法已过时)


2、提供操纵日期和时间各组成部分的方法


3、Date 类的最佳应用之一是获取系统当前时间


4、获取系统当前时间是一个长整型数据Long, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据,表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数.


案例一:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TestNew {
  public static void main(String[] args) throws ParseException {
    /*
     *  Date:时间类 
     */
    //实例化对象:当前的系统时间
    Date date = new Date();
//    System.out.println(date);
    /*
     * 1秒=1000毫秒
     */
    Date d = new Date(60000);
    System.out.println(d);
    //获取年
    int year = date.getYear()+1900;
    System.out.println(year);
    //获取月
    int month = date.getMonth()+1;
    System.out.println(month);
    //获取日
    int day = date.getDate();
    System.out.println(day);
    //获取周几
    int week = date.getDay();
    System.out.println(week);
    //获取时
    int hour = date.getHours();
    System.out.println(hour);
    //获取分
    int m = date.getMinutes();
    System.out.println(m);
    //获取秒
    int s = date.getSeconds();
    System.out.println(s);
    //获取1970年1月1日0:0:0 到指定时间之间的毫秒数
    long time = date.getTime();
    System.out.println(time);


二、DateFormat的应用


1、DateFormat日期格式化类(抽象类)

       A、String format(Date date)  方法用于格式化时间


       B、static DateFormat getDateInstance()   获取日期的DateFormat 对象


       C、static DateFormat getDateTimeInstance()   获取日期-时间的DateFormat 对象 static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)获取给定    日期和时间格式化风格 DateFormat 对象 (可选参数 short,full, long, medium ,)

2、功能:完成日期的显示格式化

       A、只要通过向SimpleDateFormat 的构造函数传递格式字符串“EEEE-MM-dd-yyyy",


       B、我们就能够指明自己想要的格式. 然后调用DateFormat(Date date)方法,得到想要的格式。


       C、 EEEE是星期, MM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递"EE-MM-dd-yyyy"会显示 星期五-02-27-2009

案例二:

 

//实例化格式一个指定格式的 格式对象
  SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss");
  System.out.println("格式化之前:"+date);
  //转换格式
  String sDate = sdf.format(date);
  System.out.println("格式化之后:"+sDate);
  //定义一个 字符串的时间
  String str = "1999年12月31日 23:59:59";
  //实例化一个时间格式对象
  SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss");
  //解析字符串时间
  Date d2 =  sdf2.parse(str);
  System.out.println(d2);


三、Calender类


问题:

问:我们现在已经能够格式化并创建一个日期对象了, 但是我们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值呢?  

答:使用Calendar 类。Calendar 类也是一个抽象类,它有一个子类GregorianCalendar,接下来我会利用这个子类来演示这个过程,请看以下代码  


//使用GregorianCalendar类获取时间相关信息
    calendar.get(Calendar.YEAR) 获取年
    calendar.get(Calendar.MONTH) + 1) 获取月
    cal.add(Calendar.YEAR, 2); //年上加2年
    private void fun3() {
  Calendar cal = new GregorianCalendar();
        //设置cal的年份为 2012年
  cal.set(Calendar.YEAR, 2012);
        //打印年份
  System.out.println(cal.get(Calendar.YEAR)); 
        //设置月份
  cal.set(Calendar.MONTH, 9); 
  System.out.println(cal.get(Calendar.MONTH));
        //设置年月日
  cal.set(2018, 3, 2);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  System.out.println(sdf.format(cal.getTime()));
  cal.add(Calendar.YEAR, 2); //年上加2年
  cal.add(Calendar.MONTH, 2);//月上加2
  System.out.println(sdf.format(cal.getTime()));
  System.out.println(cal.get(Calendar.DAY_OF_WEEK));//获取星期几
//创建一个日期对象
        //让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 
        //这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间. 
        import java.util.Date;
        public class DateExample1{  
              public static void main(String[] args){
              Date date = new Date(); 
              System.out.println(date.getTime()); 
      }
}

1、日期数据的定制格式:

import java.text.SimpleDateFormat;
import java.util.Date;
 public class DateExample2{
     public static void main(String[] args) {
     SimpleDateFormat bartDateFormat = new SimpleDateFormat(“EEEE-MMMM-dd-yyyy”); 
// E  星期中的天数, M  年中的月份 , D  年中的天数,y年 
     Date date = new Date();         
     System.out.println(bartDateFormat.format(date));    
    }
}

2、日期格式化方法:

Date类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下:  

toDateString() //以特定于实现的格式显示星期几、月、日和年;    
  toTimeString() //以特定于实现的格式显示时、分、秒和时区;  
  toLocaleDateString() //以特定于地区的格式显示星期几、月、日和年;  
  toLocaleTrimeString() //以特定于实现的格式显示时、分、秒;  
  toUTCString() //以特定于实现的格式完整的UTC日期。

与toLocaleString()和toString()方法一样,以上这些字符串格式方法的输出也是因浏览器而异的,因此没有哪一个方法能够用来在用户界面中显示一致的日期信息。

3、日期/时间组件方法:

       1、getUTCMinutes() 返回UTC日期中的分钟数(O到59)。


       2、setMinutes(分) 设置日期中的分钟数。传入的值超过59则增加小时数


       3、setUTCMinutes(分) 设置UTC日期中的分钟数。传入的值超过59则增加小时数


       4、getSeconds() 返回日期中的秒数(O至IJ59)。  


        5、getUTCSeconds() 返回UTC日期中的秒数(0到59)。    


       6、setSeconds(秒) 设置日期中的秒数。传人的值超过了59会增加分钟数  


       7、set UTCSeconds(秒) 设置UTC日期中的秒数。传人的值超过了59会增加分钟数


       8、getMilliseconds() 返回日期中的毫秒数


       9、getUTCMilliseconds() 返回UTC日期中的毫秒数


       10、setMilliseconds(毫秒) 设置日期中的毫秒数


       11、setUTCMilliseconds(毫秒) 设置UTC日期中的毫秒数


       12、getTimezoneOffset() 返回本地时间与UTC时间相差的分钟数。


例如,美国东部标准时间返回300。在某地进入夏令时的情况下,这个值会有所变化

4、日期和时间模式

       1、字母  日期或时间元素  表示  示例  


       2、y  年  Year  1996; 96  


       3、M  年中的月份  Month  July; Jul; 07  


       4、w  年中的周数  Number  27  


       5、W  月份中的周数  Number  2  


       6、D  年中的天数  Number  189  


       7、d  月份中的天数  Number  10  


       8、 F  月份中的星期  Number  2  


       9、E  星期中的天数  Text  Tuesday; Tue  


       10、a  Am/pm 标记  Text  PM  


       11、H  一天中的小时数(0-23)  Number  0  


       12、k  一天中的小时数(1-24)  Number  24  


       13、K  am/pm 中的小时数(0-11)  Number  0  


       14、h  am/pm 中的小时数(1-12)  Number  12  


       15、m  小时中的分钟数  Number  30  


       16、s  分钟中的秒数  Number  55  


       17、S  毫秒数  Number  978  


       18、z  时区  General time zone  Pacific Standard Time; PST; GMT-08:00  


       19、Z  时区  RFC 822 time zone  -0800  

相关文章
|
11月前
|
Java
【零基础学Java】—Calendar类(三十四)
【零基础学Java】—Calendar类(三十四)
|
Java API
Java之Date类以及SimpleDateFormal类的概述
Java之Date类以及SimpleDateFormal类的概述
75 0
|
4月前
|
Java
Calendar类在Java中的高级应用与使用技巧
Calendar类在Java中的高级应用与使用技巧
|
5月前
|
Java 测试技术 API
滚雪球学Java(52):一步一步教你使用Java Calendar类进行日期计算
【6月更文挑战第6天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
47 3
滚雪球学Java(52):一步一步教你使用Java Calendar类进行日期计算
|
5月前
|
安全 Java 测试技术
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
【6月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
48 0
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
|
5月前
|
安全 Java 测试技术
滚雪球学Java(51):掌握Java Date类:用法、弊端与时间戳转换技巧,助你轻松处理日期时间
【6月更文挑战第5天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
84 0
滚雪球学Java(51):掌握Java Date类:用法、弊端与时间戳转换技巧,助你轻松处理日期时间
|
存储 SQL 安全
【JavaSE专栏41】Java常用类 Date 解析,高效处理日期问题
【JavaSE专栏41】Java常用类 Date 解析,高效处理日期问题
227 0
|
SQL 安全 Java
java Date 和 Calendar类 万字详解(通俗易懂)
java API专题——常用类Date和Calender类 内容分享。
141 0
java Date 和 Calendar类 万字详解(通俗易懂)
|
存储 算法 Java
数据结构算法学习打卡week2 (Java)
数据结构算法学习打卡week2 (Java)
75 0
|
Java
Java中时间日期类之Date类、SimplDateFormat类、Calendar类及二月天案例
时间日期类之Date类、SimplDateFormat类、Calendar类及二月天案例的简单示例
397 0
Java中时间日期类之Date类、SimplDateFormat类、Calendar类及二月天案例