具体类(和抽象类相对)java.util.Date
抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat
抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar
具体类可以被实例化, 但是抽象类却不能. 你首先必须实现抽象类的一个具体子类。
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中时间类Date和Calendar的使用 java中时间类Date和Calendar的使用 <PRE class=java name="code">package cn.com; import java.text.DateFormat; import java.text.ParseException; import java.text....
本Java精华内容深入Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及...
个人资源
主要介绍了Java BigInteger类,BigDecimal类,Date类,DateFormat类及Calendar类用法,结合实例形式详细分析了Java使用BigInteger类,BigDecimal类,Date类,DateFormat类及Calendar类进行数值运算与日期运算相关操作...
如果调用空参构造创建对象那么对象为当前的时间,如果调用有参构造(参数是一个long类型代表毫秒数),那么返回的对象是从基准时间过了所输入参数的时间后表示的日期 基准时间是1970年1月1日8时0分0秒 如图: 注意...
时间和日期中常用到的几个类: java.util.Date, java.util.Calendar, java.util.GregorainCalendar, java.text.DateFormat, java.text.SimpleDateFormat
java中关于日期处理的总结,包含各种日期格式之间的转java.util.Date(已经不提倡使用,该类的方法比较少) java.util.Calendar(抽象类) java.util.GregorianCalendar(是Calendar的子类,日期处理时候经常使用该类)****...
calendar.add(Calendar.DATE, addCount); return calendar.getTime(); } /** * 获得与某日期相隔几天的日期 * * @param date * 指定する日付 * @param addCount * 離れた月数 * @return 処理後の...
而Date的其他构造方法和普通方法的API都不容易实现国际化,因此目前Date类的大多数方法都被标识为过时,表示更灵活的时间类请参考java.util.Calendar。 Date的输出结果是按照国际通用格式输出的,而中国更习惯于...
16_常用API_第2天(正则表达式、Date、DateFormat、Calendar)_讲义
* 日历字段, 使用Calendar类定义的日历字段常量 * @param offset * 偏移量 * @return Date */ public Date add(int field, int offset) { cal.setTime(this.fiducialDate); cal.add(field, offset); ...
文章目录一.Object类概念:方法:toStringequals总结:二.Objects类概念三.Date类概述构造方法:成员方法:总结:四.DateFormat类概念构造方法:成员方法:使用方法演示五.Calendar类概念:方法:六.Math概念使用...
本课程是《零基础学Java》课程的第六阶段课程,课程内容详实、细致,讲解通俗易懂!本课程采用Eclipse4.9版本进行教学。内容包括以下常用JavaAPI的讲解: 1. Object类/Scanner类 ...7.Date类/DateFormat类/Calendar类
1.1.4 与时间有关的类Date,DateFormat,Calendar 1.2 深入理解嵌套类和内部类 1.2.1 什么是嵌套类及内部类? 1.2.2 静态嵌套类 1.2.3 在外部类中定义内部类 1.2.4 在方法中定义内部类 1.2.5 匿名内部类 1.2.6 内部类...
1.1.4 与时间有关的类Date,DateFormat,Calendar 47 1.2 深入理解嵌套类和内部类 47 1.2.1 什么是嵌套类及内部类? 47 1.2.2 静态嵌套类 48 1.2.3 在外部类中定义内部类 48 1.2.4 在方法中定义内部类 49 1.2.5 匿名...
java常用类库 主要方法分析 pdf 文件 实例讲解 StringBuffer类 Runtime类 Locable类 ResourceBundle类 System类 Date类 Calendar类 DateFormat类 Math类
指定格式的具体规则我们可参照SimpleDateFormat类的说明,这里做简单介绍,规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出
Java 语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分。下面这篇文章就给大家介绍了如何利用Java中Calendar计算两个日期...