`

Date DateFormat Calendar

阅读更多

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

Date类常用的两个构造函数:
  Date()无参数的构造函数创建的对象可以获取本地当前时间。
  Date(long time)使用一个从GMT(格林尼治标准时间)1970年, 1月1日00:00:00这一刻之前或者是之后经历的毫秒数创建一个Date对象

Date示例:
  Date date = new Date();
  System.out.println(date.getTime());  //1228061164796
  System.out.println(date.toString());  //Mon Dec 01 00:06:04 CST 2008


日期数据的定制格式:(DateFormat类、SimpleDateFormat类)
为了定制日期数据的输出格式,我们可以使用DateFormat的子类SimpleDateFormat。SimpleDateFormat有个常用构造方法:
  public SimpleDateFormat(String pattern)  //pattern指定输出格式

pattern中可以有如下格式符:
  y,yy:用2位数字表示的"年"替换。
  yyyy:用4位数字表示的"年"替换。
  M,MM:用2位数字表示的"月"替换。
  MMM:用汉字表示的"月"替换。
  d,dd:用2位数字表示的"日"替换。
  H,HH:用2位数字表示的"时"替换。
  m,mm:用2位数字表示的"分"替换。
  s,ss:用2位数字表示的"秒"替换。
  E:用"星期"替换
pattern中的普通ASCII字符,必须用单引号“'”字符括起来,如:
  pattern="'time':yyyy-MM-dd";

用SimpleDateFormat对象调用如下方法可以定制某时间输出格式:
  public String format(Date date)
实例:
  SimpleDateFormat sdf = new SimpleDateFormat(" 'time':yyyy-MM-dd");
  System.out.println(sdf.format(date));  // time:2008-12-01

假如我们由一个文本字符串包含一个格式化了的日期对象,现在从这个字符串中解析日期数据创建一个日期对象。
使用SimpleDateFormat对象调用如下函数创建一个Date对象:
  Date java.text.DateFormat.parse(String source)
实例:
  String str="2008-12-1";
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  try{
   Date date=sdf.parse(str);
   System.out.println(date);  //Mon Dec 01 00:00:00 CST 2008
  }
  catch(Exception ex){
   System.out.println(ex.getMessage());
  }

使用标准的日期格式化过程:
  常用的两个获取日期/时间格式器的方法:
  public static final DateFormat getDateTimeInstance() //具有默认语言环境的默认格式化风格。
  public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle) //具有默认语言环境的给定日期和时间格式化风格。

实例:
  Date date = new Date();
  DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
  DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
  DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
  DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
  System.out.println(shortDateFormat.format(date));  //08-12-1 下午1:28
  System.out.println(mediumDateFormat.format(date));  //2008-12-1 13:28:31
  System.out.println(longDateFormat.format(date));  //2008年12月1日 下午01时28分31秒
  System.out.println(fullDateFormat.format(date));  //2008年12月1日 星期一 下午01时28分31秒 CST


Calendar类:
使用Date类可以创建日期/时间对象,使用DateFormat类,SimpleDateFormat类可以对Date对象进行格式化。
使用Calendar类可以设置和获取日期/时间数据的特定部分。

Calendar类是抽象类不能实例化对象,但是可以使用Calendar类的static方法getInstance(),可以初始化一个日历对象。如:
  Calendar calendar = Calendar.getInstance();
然后可以使用该calendar对象可以调用方法,如:(当year取负数时表示公元前)
  public final void set(int year, int month, int date)
  public final void set(int year, int month, int date, int hourOfDay, int minute)
  public final void set(int year, int month, int date, int hourOfDay, int minute, int second)

Calendar类对象调用如下方法可以获取有关年份,月份,小时,星期等信息,参数field的有效值由Calendar的静态常量指定
  public int get(int field)
实例:
  calendar.get(Calendar.MONTH);  //返回一个整数,如果该整数是0表示一月,11表示12月
Calendar对象调用如下方法可以把时间表示为毫秒:
  public long getTimeInMillis()

Calendar使用实例:
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(new Date());
  String  年 = String.valueOf(calendar.get(YEAR)),
    月 = String.valueOf(calendar.get(MONTH)+1),
    日 = String.valueOf(calendar.get(DAY_OF_MONTH)),
    星期 = String.valueOf(calendar.get(DAY_OF_WEEK)-1);

  int hour = calendar.get(HOUR_OF_DAY),
   minute = calendar.get(MINUTE),
   second = calendar.get(SECOND);

  System.out.println("现在的时间是:");
  System.out.println(年+"年"+月+"月"+日+"日"+"星期"+星期);
  System.out.println(hour+"时"+minute+"分"+second+"秒");

  calendar.set(2004,7,8);  //将日历翻到2004年8月8日,注意7表示八月
  long time2004 = calendar.getTimeInMillis();
  calendar.set(2008,7,8);  //将日历翻到2008年8月8日
  long time2008 = calendar.getTimeInMillis();
  long 相隔天数 = (time2008-time2004)/(1000*60*60*24);
  System.out.println("2008年8月8日和2004年8月8日相隔"+相隔天数+"天");
输出结果:
  现在的时间是:
  2008年12月1日星期1
  14时41分45秒
  2008年8月8日和2004年8月8日相隔1461天
分享到:
评论

相关推荐

    JAVA System、Math、Date、DateFormat、Calendar

    在这个"JAVA System、Math、Date、DateFormat、Calendar"的主题中,我们将深入探讨Java标准库中的几个核心类,它们在各种程序设计场景中扮演着至关重要的角色。 首先,`System`类是Java中最基础的类之一,位于`java...

    Java 之 Date 和 Calendar 实例

    在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的使用方式和功能,对于理解Java时间处理机制至关重要。本篇将深入探讨`Date`和`Calendar`类的实例应用。 ...

    解析Date & Calendar类

    【解析Date & Calendar类】 Java中的Date和Calendar类是处理日期和时间的核心工具。这两个类在Java编程中扮演着重要角色,特别是在处理日期计算、格式化以及与数据库交互时。 1. **java.util.Date** - **字符串转...

    16_常用API_第2天(正则表达式、Date、DateFormat、Calendar)_讲义

    在Java编程语言中,正则表达式、Date、DateFormat和Calendar是四个非常重要的API,它们在处理字符串匹配、日期和时间操作中起着关键作用。本文将深入探讨这些概念及其在实际开发中的应用。 首先,让我们来了解一下...

    Java基础之Date和Calendar类的使用方法

    最后,我们可以通过`getTime()`方法将修改后的Calendar对象转换回Date,然后再次使用DateFormat进行格式化输出: ```java Date updatedDate = calendar.getTime(); System.out.println(formatter.format(updated...

    java中时间类Date和Calendar的使用

    总结来说,Java中的`Date`和`Calendar`类提供了基本的时间处理功能,`DateFormat`和`SimpleDateFormat`则负责日期和时间的格式化,使我们能够根据需要将日期和时间转换为人类可读的字符串。在实际开发中,这些类经常...

    第6天(常用API【Date、DateFormat、Calendar、Math、System、包装类、正则表达式】)v20170

    【Java常用API】深入理解Date、DateFormat、Calendar、Math、System及包装类和正则表达式 在Java编程中,熟练掌握常用的API是至关重要的。本文将详细讲解以下几个知识点: 1. **正则表达式** 正则表达式是一种...

    Java精华版 chm Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及Java EE 5.0、Java IO 包中的Decorator模式等

    本Java精华内容深入Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及...

    Java中Date,Calendar,Timestamp的区别以及相互转换与使用

    Java中的Date、Calendar和Timestamp是处理日期和时间的三个核心类,它们各有特点,并且在不同的场景下有各自的优势。接下来我们将深入探讨这三个类的区别、转换方法及其在实际使用中的应用。 1. **java.util.Date**...

    聊一聊Calendar的使用

    Date date = calendar.getTime(); ``` 反之,从`Date`创建`Calendar`: ```java calendar.setTime(date); ``` 在实际开发中,经常需要将日期格式化成字符串或者解析字符串为日期,这时可以使用`SimpleDateFormat`...

    java操作date对象

    在 Java 中,处理日期和时间主要依赖于 `java.util.Date` 和 `java.text.DateFormat` 这两个核心类。在本文中,我们将深入探讨如何使用这些类来获取、格式化和操作日期。 1. **获取当前时间** 获取当前时间最常用...

    史上最全java时间类date的处理

    然而,为了更好地格式化日期或进行日期的解析,通常会使用 `java.text.SimpleDateFormat` 和 `java.text.DateFormat` 类。此外,`java.util.Calendar` 类(尤其是它的子类 `java.util.GregorianCalendar`)也常被...

    Java Date的使用

    这个方法首先解析传入的日期字符串得到`Date`对象,然后设置`Calendar`对象的日期为当月的第一天,并最终返回格式化后的日期字符串。 #### 示例:获取指定日期的月末 ```java public String getMonthEnd(String ...

    Java-Date 类的学习总结.pdf

    下面是对 Date 类的学习总结,包括计算某一月份的最大天数、Calendar 和 Date 的转化、把字符串转化为 java.util.Date、把字符串转化为 java.sql.Date、格式化输出日期时间、计算一年中的第几星期等。 计算某一月份...

    String与date的转换

    ### String与Date的转换 #### 一、引言 在Java开发中,字符串(String)与日期(Date)之间的转换是一项常见的需求。例如,在处理用户输入的数据、解析文本文件或与数据库交互时,通常需要将字符串转换为日期对象进行...

    Java-Date 类的学习总结.docx

    可以使用以下方法将 Calendar 对象转化为 Date 对象: ```java Calendar cal = Calendar.getInstance(); Date date = cal.getTime(); ``` 也可以将 Date 对象转化为 Calendar 对象: ```java Date date = new ...

    Java_Date_日期时间整理

    <% DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = df.parse("2003-05-30"); Date d2 = df.parse("2003-05-31"); out.println(d1.equals(d2)); //false out.println(d1.before(d2)); //true ...

Global site tag (gtag.js) - Google Analytics