----------------------
ASP.Net+Android+IOS开发、
.Net培训、期待与您交流! ----------------------
1.Date与DateFormat
1.1 Date
Date类用来处理日期、时间。这个类从JDK1.0就开始存在了,所以大部分构造器和方法都已经过时,不推荐使用了。
构造器:
Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间以来的指定毫秒数。
1.2 DateFormat与SimpleDateFormat
DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
方法:
String format(Date date):将一个 Date 格式化为日期/时间字符串。
SimpleDateFormat是DateFormat的实现子类。SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
构造器:
SimpleDateFormat():用默认的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
下面是pattern中字母表示的各个日期和时间的对应关系:
y ---------- 年
M ---------- 年中的月份
d ---------- 月份中的天数
H ---------- 一天中的小时数(0-23)
k ---------- 一天中的小时数(1-24)
K ---------- am/pm 中的小时数(0-11)
h ---------- am/pm 中的小时数(1-12)
k ---------- 一天中的小时数(1-24)
K ---------- am/pm 中的小时数(0-11)
h ---------- am/pm 中的小时数(1-12)
m ---------- 小时中的分钟数
s ---------- 分钟中的秒数
E ---------- 星期中的天数
注:要严格区分大小写。
例:yyyy年MM月dd日 hh时mm分ss秒 E
public class DateDemo {
public static void main(String[] args) {
//1.创建Date对象
Date date = new Date();
//2.使用DateFormat将时间格式封装
//父类引用DateFormat指向子类对象SimpleDateFormat
DateFormat format = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 E");
//3.使用format方法格式化指定Date对象
//返回String
String time = format.format(date);
System.out.println(time);
}
}
2.Calendar
Calendar 类是一个抽象类,它为特诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。
Calendar可以通过调用set方法来设置日历字段值。还可以通过add方法对时间或日期进行计算。
主要属性:
static int YEAR:年。
static int MONTH:月。注意,从0开始计数。即1月用0表示。
static int DAY_OF_MONTH:一个月中的某天。
static int DAY_OF_WEEK:一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY。注意:星期数从1开始计数,并且代表星期日。
static int HOUR:小时,12小时制。
static int HOUR_OF_DAY:小时,24小时制。
static int MINUTE:分钟。
static int SECOND:秒。
方法:
static Calendar getInstance():使用默认时区和语言环境获得一个日历。返回的
Calendar
基于当前时间,使用了默认时区和默认语言环境。
int get(int field):返回给定日历字段的值。
void set(int field, int value):将给定的日历字段设置为给定值。
void set(int year, int month, int date):设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。该方法可以对时间或日期进行计算。
public class CalendarDemo {
public static void main(String[] args) {
//对月份使用查表法,因为Calendar中月份从0开始
String[] months = {"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"};
//对星期使用查表法,因为Calendar中1代表星期日。
//又因为0没有任何代表,所以数组角标0为空
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
//使用getInstance方法得到对象
Calendar c = Calendar.getInstance();
//年
System.out.println(c.get(Calendar.YEAR) + "年");
//月份,查表法
int month = c.get(Calendar.MONTH);
System.out.println(months[month]);
//日
System.out.println(c.get(Calendar.DAY_OF_MONTH) + "日");
//星期,查表法
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(weeks[week]);
}
}
public class CalendarDemo2 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
//使用set方法设置日期
c.set(2012, 11, 21);
System.out.println("当前时间:");
printCalendar(c);
System.out.println();
//使用add方法对日期计算
c.add(Calendar.MONTH, 6);
System.out.println("6个月后,时间是:");
printCalendar(c);
}
//打印时间方法
public static void printCalendar(Calendar c){
String[] months = {"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"};
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
System.out.print(c.get(Calendar.YEAR) + "年");
//月份,查表法
int month = c.get(Calendar.MONTH);
System.out.print(months[month]);
//日
System.out.print(c.get(Calendar.DAY_OF_MONTH) + "日");
//星期,查表法
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.print(weeks[week]);
}
}
练习: 获取任意年的2月有多少天。
/*
* 获取任意年的2月有多少天
* */
public class CalendarTest {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int yearVal = 2000;
c.set(Calendar.YEAR, yearVal);
int days = getDays(c);
System.out.println(yearVal + "年2月有" + days + "天");
}
//该方法用于获取任意年的2月有多少天
public static int getDays(Calendar c){
//将该年份的日期设置到3月1日
c.set(Calendar.MONTH, 2);
c.set(Calendar.DAY_OF_MONTH, 1);
//对该日期进行减一天操作,得到该年份2月最后一天
//最后一天的数字即为2月的天数
c.add(Calendar.DAY_OF_MONTH, -1);
int days = c.get(Calendar.DAY_OF_MONTH);
return days;
}
}
----------------------
ASP.Net+Android+IOS开发、
.Net培训、期待与您交流! ----------------------详细请查看:
http://edu.csdn.net