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  

相关文章
python中的时间处理模块(二):datetime模块之timedelta类详解
python中的时间处理模块(二):datetime模块之timedelta类详解
python中的时间处理模块(二):datetime模块之timedelta类详解
|
2月前
|
存储 Java API
优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。
【10月更文挑战第19天】本文介绍了如何优雅地使用Java Map,通过掌握其高级特性和技巧,让代码更简洁。内容包括Map的初始化、使用Stream API处理Map、利用merge方法、使用ComputeIfAbsent和ComputeIfPresent,以及Map的默认方法。这些技巧不仅提高了代码的可读性和维护性,还提升了开发效率。
101 3
|
6月前
|
安全 Java 测试技术
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
【6月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
54 0
|
6月前
|
安全 Java 测试技术
滚雪球学Java(51):掌握Java Date类:用法、弊端与时间戳转换技巧,助你轻松处理日期时间
【6月更文挑战第5天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
102 0
|
6月前
|
Python
python datetime处理时间的详细分析
python datetime处理时间的详细分析
30 0
|
7月前
|
Java 数据处理 API
Java 函数式编程:概念、优势与实战示例
【4月更文挑战第27天】函数式编程(Functional Programming,简称 FP)是一种编程范式,它将计算视为数学函数的求值并避免使用程序状态以及可变数据。
190 1
Java基础用Date类编写万年历
Java基础用Date类编写万年历
|
Java
Java重点 | Date类
本文详细的介绍了Date类相关的内容,并以举例的方式,带你深入浅出的理解Date类。
90 0
Java重点 | Date类
python中的时间处理模块(二):datetime模块之time类详解
python中的时间处理模块(二):datetime模块之time类详解
python中的时间处理模块(二):datetime模块之time类详解
|
安全 Java 测试技术
18 个 Java8 日期处理的实践,太有用了!
Java 8 日期处理 Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。