总结一下关于时间的一些类

今天下午,闲着没事,突然看到一些关于时间类的一些用法,感觉几个类有点复杂,就总结一下:

(一些不对的地方还麻烦大家指出来,不要让我误导了初学者。谢谢)

具体的类主要有这几个:

Date    Calendar    SimpleDateFormat

1、Date类

这个类中的大部分方法都过时了。

具体可以这么用:

Date date = new Date();
System.out.println(date.toString());

可以直接打印出当前的时间:Mon Jun 30 12:50:09 CST 2014

只不过格式不太好看,没关系,一会儿给他们穿件好看的衣服。

有一个方法没有过时:

Date date = new Date();
System.out.println(date.geTime());

这个方法是返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

可以用来测试一个程序运行的总毫秒数,或者秒数。

还可以直接用:

long now = System.currentTimeMillis();

这个方法与上述方法得到的结果是一样的。

2、Calendar抽象类

这个类很强大,基本上代替了以前的Date类。Calendar 提供了一个类方法
getInstance(),以获得此类型的一个通用的对象。Calendar
getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。所以    这个类不能来 new 只能通过

Calendar now = Calendar.getInstance();

来实例化对象。

直接看一个例子来理解一下怎么用则会个类:

import java.util.Calendar;

public class TestDate {

	public static void main(String[] args) {
		// 获得当前日期
		Calendar calendar = Calendar.getInstance();

		int year = calendar.get(Calendar.YEAR);
		System.out.println("YEAR = " + year);   //2014 

		int month = calendar.get(Calendar.MONTH);
		// 获得当前月份, 0..11 表示 JAN..DEC
		System.out.println("Month = " + month);// 5

		//获取一个月中的第几天。见名知意
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		System.out.println("Day of Month = " + day); // 30

		// 获得日期在本周的天数, Sun=1, Mon=2 ... Sta=7
		int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);
		System.out.println("Day of Week = " + day_of_week); // 1

		// 获得当前时间 12 时制是 Calendar.HOUR
		int hour12 = calendar.get(Calendar.HOUR);
		System.out.println("hour 12 = " + hour12); // 1

		// 获得 AM ,PM , 0 = AM, 1 = PM
		int ampm = calendar.get(Calendar.AM_PM); //  1
		System.out.println("am pm = " + ampm); // 0 = am , 1 = pm

		// 获得当前时间 24 时制 Calendar.HOUR_OF_DAY
		int hour24 = calendar.get(Calendar.HOUR_OF_DAY);
		System.out.println("hour 24 = " + hour24);  //13

		完整的显示时间:
		String date = calendar.get(Calendar.YEAR)+"-"
		                +calendar.get(Calendar.MONTH)+"-"
		                +calendar.get(Calendar.DAY_OF_MONTH)
				+"  "+calendar.get(Calendar.HOUR_OF_DAY)+":"
				+calendar.get(Calendar.MINUTE)+":"
				+calendar.get(Calendar.SECOND);
	        System.out.println(date);
	}

}

呵呵,最后一个“完整的现实时间”看起来有点复杂吧,所以我一般不用这个。后边还有更好的方法。

Calendar这个类里边有好多成员变量,上边程序只是列出了一部分,其它的可以查阅  java 的 API至于API可以去本站下载,资源应有尽有。

3、SimpleDateFormat类

    说SimpleDateFormat先说一下它的爸爸:DateFormat。

我们可以通过 DateFormat中 的
getTimeInstancegetDateInstance
getDateTimeInstance 来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。

下面是  利用 DateFormat来返回是一个时间或者日期格式化:

返回一个 默认的时间格式器:

DateFormat format = DateFormat.getTimeInstance();
Date date = new Date();
System.out.println(format.format(date));   //14:05:11

返回一个 默认的日期格式器:

DateFormat format = DateFormat.getDateInstance();
Date date = new Date();
System.out.println(format.format(date)); //2014-6-30

返回一个 默认的日期-时间格式器:

DateFormat format = DateFormat.getDateTimeInstance();
Date date = new Date();
System.out.println(format.format(date)); //2014-6-30 14:08:08

SimpleDateFormat用来格式化日期或者时间更自由。

        SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 ->
文本)、解析(文本 -> 日期)和规范化。

日期和时间格式由日期和时间模式 字符串指定。

定义了以下模式字母(所有其他字符 ‘A‘‘Z‘‘a‘
‘z‘ 都被保留):

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
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 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800

例如:

Date date = new Date();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(format1.format(date));    //  2014-06-30
System.out.println(format2.format(date));    //  2014/06/30

格式化的时候 字符串中的 "-" 会被忽略,输出的时候按照你规定的格式输出。

很方便吧,比上边的那个简单多了。

再来个例子:

SimpleDateFormat format3 = new SimpleDateFormat("HH:mm:ss");    //14:30:32
SimpleDateFormat format4 = new SimpleDateFormat("HH:mm:ss a");  //14:30:32 下午

然后用   format3.format(date);  来格式化 Date 对象。 使它我们规定的格式来输出。

如果想看 我们用那种 模式来格式化的话,有一个方法可以帮助我们实现,就是

System.out.println(format3.toPattern());    //  HH:mm:ss

很简单吧。。。

只是简单的介绍了一些简单的用法,满足我们的一般要求,深入的以后具体来说。

希望对你们有帮助。

总结一下关于时间的一些类,布布扣,bubuko.com

时间: 2024-10-14 16:43:26

总结一下关于时间的一些类的相关文章

1、自学——Linux的学习进度与任务【时间日期管理类的命令】

时间日期管理类的命令 时间日期管理类的命令:  # date :显示 # date MMDDhhmm[CC]YY.ss :设定 # date [+FORMAT] %Y:4位年份 %y:  2位年份 %M:  分 %m:月 %d:  日 %H:  时 %S:  秒 %T: 时间(以冒号隔开) %D:日期 %F: 日期(以横杆隔开) unix元年:1970-01-01 00:00:00 %s:timestamp:从unix元年开始到此刻所经历的秒数 # cal   :    显示日历 # cal #

Problem B: 时间和日期类(III)

Problem B: 时间和日期类(III) Time Limit: 4 Sec  Memory Limit: 128 MBSubmit: 2889  Solved: 1732[Submit][Status][Web Board] Description 设计一个日期时间类,用于读取输入的数据,按格式输出日期和时间. 设计日期时间类DateTime由2个成员组成,分别是一个Date类对象和一个Time类对象: 设计DateTime类需支持以下操作: DateTime::DateTime()无参构

时间格式转换类

 时间格式转换类 时间的字符串形式与毫秒形式相互转换的类. using System; namespace myspace { /// <summary> /// 指定若干常数,表示计时格式. /// </summary> public enum TimingFormat : byte { /// <summary> /// 毫秒. /// </summary> Ms, /// <summary> /// 秒 /// </summary

ActionScript 3.0日期与时间管理(Date类)

/*Flash中,Date类管理着日期和时间信息.要获取   当前日期,可以新建一个Date对象   */var now:Date =new Date();trace (now);     /*输出当前时间和日期,格式如:                  Sun Jul 27 19:45:57 GMT+0800 2014  */ /*以上代码中,Date对象中包括了当前的秒.分.小时.  星期数.日.月.年.时区等信息...如果仅需要返  回星期值和日期值,而不返回时间或时区,可以使用Date

.Net时间运算 - DateTime类,TimeSpan类

DateTime类是.Net中用于处理时间类型数据的. 一.字段 MaxValue 表示 DateTime 的最大可能值.此字段为只读. MinValue     表示 DateTime 的最小可能值.此字段为只读. 二.属性 Date 获取此实例的日期部分. Day  获取此实例所表示的日期为该月中的第几天. DayOfWeek  获取此实例所表示的日期是星期几. DayOfYear 获取此实例所表示的日期是该年中的第几天. Hour 获取此实例所表示日期的小时部分. Kind 获取一个值,该

时间转化工具类

/**  * 时间转换工具类  * @author Lin LI  * @DATE 2015-08-26  */ public class Test { public static void main(String[] args) { //转换格式:天-时-分-秒 secTime(60*60);   // 传入单位秒 // 转换格式:天-时-分-秒-毫秒 diffTime(2800);   // 传入单位毫秒 } /**  * 转换格式:天-时-分-秒  * @param secTime  */

[java工具类01]__构建格式化输出日期和时间的工具类

在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同的时间以及日期信息,但我们了解到,时间以及日期的转换符实在是太多了,导致我们无法十分方便的在需要的时候格式化出想要的日期时间输出格式. 然而在学习过程中,我们了解到类是可以相互调用的,以及静态方法是可以跨类使用的,,所以,通过本文,将构建一个显示时间日期的工具类,定义几个常用的日期时间格式,之后我们

joda-time的使用,创建时间处理工具类DateTimeUtil

@大神爱吃茶 joda-time的使用,创建时间处理工具类DateTimeUtil Joda-Time是专门处理时间的库.可以将我们传进去的date对象标准化为我们想要指定保存的时间格式形式: 1 import org.apache.commons.lang3.StringUtils; 2 import org.joda.time.DateTime; 3 import org.joda.time.format.DateTimeFormat; 4 import org.joda.time.form

Java日期时间实用工具类

1.Date (java.util.Date)    Date();        以当前时间构造一个Date对象    Date(long);        构造函数        boolean after(Date when)         测试此日期是否在指定日期之后 boolean before(Date when)         测试此日期是否在指定日期之前 Object clone()         返回此对象的副本 int compareTo(Date anotherDat