Java中关于日期类那些方法

转载请注明出处http://blog.csdn.net/harryweasley/article/details/41977633,谢谢

本篇文章主要介绍Date,DateFormat,SimpleDateFormat,Calendar这四个类

Date类:

在java.util包下

类 Date 表示特定的瞬间,精确到毫秒。

从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的相应方法已废弃。

所以Date主要用来生成时间,

Date有两个构造方法

Date()

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

Date(long date)

分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

		Date date = new Date();
		Date date2=new Date(0);
		System.out.println(date);
		System.out.println(date2);

输出结果是:

Tue Dec 16 19:40:32 CST 2014
Thu Jan 01 08:00:00 CST 1970

可以看出两个构造函数的区别,这里我个人认为第二个构造函数,用处太少,因为知道一个时间相对于“历元”的毫秒数,是不现实的。

Date常用方法:

boolean after(Date when)        测试此日期是否在指定日期之后

boolean before(Date when)                    测试此日期是否在指定日期之前

int compareTo(Date anotherDate)          比较两个日期的顺序

long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数

void setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点

自我感觉这几个方法都没什么意义,所以就不介绍了。

DateFormat类:

在java.text包下

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

它是抽象类,所以不能构造方法来实例化,可以用getDateInstance()和getDateTimeInstance()这两个静态函数来进行实例化。这两个的区别是一个返回的是日期,一个返回的是日期+时间。

同时,getDateInstance(int style, Locale aLocale)

关于style值:

FULL:    长度最长 比如:2013年1月9日 星期三

LONG:   长度更长 比如:January 9, 2013

MEDIUM:长度比SHORT长 比如:Jan 9,2013

SHORT: 完全为数字,比如:13/1/9

说了这么多,赶紧看例子吧:

		DateFormat df = DateFormat.getDateInstance();
		// 使用getDateTimeInstance生成format实例,就可以把date和time都显示出来
		DateFormat df2 = DateFormat.getDateTimeInstance();

		String s = df.format(date);
		String s2 = df2.format(date);
		System.out.println(s);
		System.out.println(s2);

输出结果为

2014-12-16
2014-12-16 20:01:05

可以看出一个有日期,有时间,一个只有日期。

		DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL,Locale.CHINA);
		String china_time = df3.format(new Date());
		DateFormat df4 = DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA);
		String g_time = df4.format(new Date());
		System.out.println("full值:" + china_time);
		System.out.println("long值:" + g_time);

输出值为:

full值:2014年12月16日 星期二
long值:2014年12月16日

这里就不在解释了。

SimpleDateFormat类:

在java.text包下

它是DateFormat类的直接子类,继承DateFormat类。我是这么理解SimpleDateFormat类的,它相对于Datef类更接地气,你可以随意给他指定一个形式的日期,进行更改。

SimpleDateFormat类主要功能是完成日期之间格式的转换,而且在转换过程中需要采用如下步骤:

1.指定一个模板,并根据这个模板,取出第一个所有的时间数字。

2.所有的时间数字将采用Date类保存。

3.将所有的时间数字重新进行格式转换。

模板如下表,注意区分大小写

日期 模板 描述
Y 表示年:yyyy
M 表示月:MM
d 表示日:dd
HH 表示时:HH
mm 表示分:mm
ss 表示秒:ss
毫秒 S 毫秒:SSS
		Date date2 = new Date();

		SimpleDateFormat spf = new SimpleDateFormat("yyyy年-MM月-dd日:HH时-mm分-ss秒");

		System.out.println(spf.format(date2));

输出为:

2014年-12月-16日:20时-16分-49秒

这里有两个方法,一定要搞清楚,一个是spf.format(Date),一个是spf.parse(String),分别代表,将日期变为新的格式,从给定的字符串中提取出日期,提取出来的日期Date类型。

同时在调用parse这个方法时,会出现异常,

try {

}    catch (ParseException e) {

e.printStackTrace();

}

这应该不难理解,可能字符串提取不出日期,就会捕捉异常。

Calendar类:

在java.util包下

Calendar 类是一个抽象类,

它为“特定瞬间”与一组诸如 “YEAR”、“MONTH”、“DAY_OF_MONTH”、“HOUR ”等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

Calendar实例化有两种方式,第一种是 Calendar nowTime = new GregorianCalendar();,第二种是Calendar calendar=Calendar.getInstance();

看例子:

Calendar nowTime = new GregorianCalendar();// 获取当前系统平台下默认的日期、时间和时区。
		int todayYear = nowTime.get(Calendar.YEAR);// 获取当前系统平台下默认日期的“年”。
		int todayMonth = nowTime.get(Calendar.MONTH) + 1;// 获取当前系统平台下默认日期的“月”。
		int todayDay = nowTime.get(Calendar.DAY_OF_MONTH); // 获取当前系统平台下默认日期的“日”。
		// 输出当前系统平台下的时间。
		System.out.println("现在的日期是:" + todayYear + "年" + todayMonth + "月"+ todayDay + "日");

		nowTime.set(2013, 2 - 1, 9);
		System.out.println(nowTime.getTime());

		Calendar calendar3 = Calendar.getInstance();
		calendar3.add(Calendar.DATE, 10);
		int year1 = calendar3.get(Calendar.YEAR);// 月份
		int month1 = calendar3.get(Calendar.MONTH) + 1;// 日期

		int date1 = calendar3.get(Calendar.DATE);
		System.out.println(year1 + "年" + month1 + "月" + date1 + "日");

输出为:

现在的日期是:2014年12月16日
Sat Feb 09 20:29:30 CST 2013
2014年12月26日

呼。。。终于完毕了。。。。

时间: 2024-10-12 07:40:38

Java中关于日期类那些方法的相关文章

转:java中包、类、方法、属性、常量的命名规则

必须用英文,不要用汉语拼音 1:包(package):用于将完成不同功能的类分门别类,放在不同的目录(包)下,包的命名规则:将公司域名反转作为包名.比如www.sohu.com 对于包名:每个字母都需要小写.比如:com.sohu.test;该包下的Test类的全名是:com.sohu.Test.java . 如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(default package). 2:类:首字母大写,如果一个类由多个单词构成,那么每个单词的首字

Java中各种(类、方法、属性)访问修饰符与修饰符的说明

类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所有类访问(使用),其他项目若想使用本项目中的类,必须将本项目打包为jar包,然后加入到classpath中 public类必须定义在和类名相同的同名文件中 (default) 只能被同一个包中的类访问(使用) 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中 修饰符 名称

Java基础(43):Java中的Object类与其方法(转)

Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. Object类是Java中唯一没有父类的类. 其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法. Object类中的方法 构造方法:public Object() 文档中的类概览: Java中的每个类都具有定义在Object类中的这些方法. protected Object cl

Java中关于日期的处理方法

(1)Date *  Date: *  介绍是java.util包下的Date类,这个类是负责描述日期这类数据的. *  Date主要是描述当前时间毫秒值对象. *  它中的很多方法不利于国际化,已经被废弃. * *  Date是把当前的毫秒值封装成Date对象. *  如何把一个毫秒值转成Date对象 *  Date()它是把当前的时间点的毫秒值转成Date对象 *  Date(long date) 把我们指定的一个毫秒值转成Date对象 *  setTime(long time) 把当前的D

Java中常用日期操作及方法

前言 涉及到日期计算和字符串与日期转换,转来转去很是麻烦,于是归纳总结一下.以下都可以用. 一.Dateformat类的常用格式 y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天数 Number 189 d 月份中的天数 Number 10 F 月份中的星期 Number 2 E 星期中的天数 Text Tuesday; Tue a Am/pm 标记 Text PM H

Java中的日期处理类

在Java中可以使用Date类和Calendar类来处理日期 但是Date类很多方法都过时了,推荐使用Canlendar类来处理日期,并对日期的格式化做了介绍.下面的部分将会逐一介绍 Date类 Java提供了Date类来处理日期.时间,Date类既包含日期,也包含时间.Date类从JDK1.0版本就开始存在,存在时间久远,提供的6个构造器中,已有4个建议放弃使用,目前使用的为: Date():生成一个以系统当前时间日期为准的Date对象. Date(long date):根据指定的long整型

java中的日期处理类总结

转自 http://blog.csdn.net/shibenjie/article/details/4263912 java中的日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类 今天花了好大一点时间把java的日期类做了一下整理,哈 1.         Date类(该类现在很少用了) l         Date类对象的创建: n         创建一个当前时间 //默认是创建一个代表系统当前日期的Dat

java中常用的包、类、以及包中常用的类、方法、属性-----io包

由于最近有需要,所以下面是我整理的在开发中常用的包.类.以及包中常用的类.方法.属性:有需要的看看 java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.math.*; java.sql.*; java.text.*; java.awt.*; javax.swing.*;   包名 接口 类 方法 属性 java.io.*; java.io.Serializable实现序列化 java.io.Buffe

转:Java中的StringTokenizer类的使用方法

StringTokenizer是字符串分隔解析类型,属于:java.util包. 1.StringTokenizer的构造函数 StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象.java默认的分隔符是“空格”.“制表符(‘\t’)”.“换行符(‘\n’)”.“回车符(‘\r’)”. StringTokenizer(String str,String delim):构造一个用来解析str的StringTokenizer对象,并提供一