日期类Date、Calendar

一、Date类

Date类返回的是从1970年1月1日00:00:00格林威治时间以后返回的毫秒数

二、Calendar类

Calendar类是一个抽象类,有专门的方法来表示,如:YEAR、MONTH、DAY_OF_MONTH、HOUR。
下面是一个通过Calendar类获取日期的例子:
package date_calendar;

import java.util.Calendar;
import java.util.Date;

public class Calendar1 {
	// Calendar类得到年月日
	public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		// 获取年
		int year = cal.get(Calendar.YEAR);
		// 获取月份,月份是从0开始的
		int month = cal.get(Calendar.MONTH) + 1;
		// 获取日
		int day = cal.get(Calendar.DAY_OF_MONTH);
		// 时
		int hour = cal.get(Calendar.HOUR_OF_DAY);
		// 分
		int minute = cal.get(Calendar.MINUTE);
		// 秒
		int second = cal.get(Calendar.SECOND);
		// 获取星期,1代表星期日,2代表星期一
		int week = cal.get(Calendar.DAY_OF_WEEK);
		int week2 = cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);// 当前月中的第几个星期--3
		int week3 = cal.get(Calendar.DAY_OF_YEAR);// 当前年中的第几个星期--80
		// 2017年3月21日2:43:39星期二
		System.out.println(year + "年" + month + "月" + day + "日" + hour + ":"
				+ minute + ":" + second + changeWeek(week));
		// 设置时间, 设置为2015年
		cal.set(Calendar.YEAR, 2015);
		// 设置时间, 设置为30号
		cal.set(Calendar.DAY_OF_MONTH, 30);
		int year2 = cal.get(Calendar.YEAR);
		int day2 = cal.get(Calendar.DAY_OF_MONTH);
		int week4 = cal.get(Calendar.DAY_OF_WEEK);
		System.out.println(year2 + "年" + month + "月" + day2 + "日" + hour + ":"
				+ minute + ":" + second + changeWeek(week4));
	}

	static String changeWeek(int _week) {
		String str = "";
		switch (_week) {
		case 1:
			str = "星期日";
			break;
		case 2:
			str = "星期一";
			break;
		case 3:
			str = "星期二";
			break;
		case 4:
			str = "星期三";
			break;
		case 5:
			str = "星期四";
			break;
		case 6:
			str = "星期五";
			break;
		case 7:
			str = "星期六";
			break;

		default:
			System.out.println("错误的日期。");
			break;
		}
		return str;
	}
}
//结果
//2017年3月21日3:4:26星期二
//2015年3月30日3:4:26星期一

三、SimpleDateFormat类

字母日期或时间元素表示示例
GEra 标志符TextAD
yYear199696
M年中的月份MonthJulyJul07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesdayTue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区General time zonePacific Standard TimePSTGMT-08:00
Z时区RFC 822 time zone-0800
下面是一个小例子:
package date_calendar;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class SimpleDateFormat1 {
	public static void main(String[] args) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd hh:mm:ss W");
		// 将date对象解析成字符串
		String str = sdf.format(new Date());
		System.out.println(str);
		String s = "17-03-21 03:26:49 4";
		// 将字符串对象解析成date对象
		Date d = sdf.parse(s);
		System.out.println(d);
		
		//DateFormat类
		DateFormat df = DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA);
		System.out.println(df.format(new Date()));//2017年3月21日
	}
}
// 17-03-21 03:30:54 4
// Tue Mar 21 03:26:49 CST 2017
//2017年3月21日

四、DateFormat类

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为  Date  对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值