日期时间
获取当前时间日期
Date date = new Date();
System.out.print(date.toString());
使用 SimpleDateFormat 格式化日期
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.print(ft.format(date));
日期和时间的格式化编码
字母 | 描述 | 示例 |
---|---|---|
G | 纪元标记 | AD |
y | 四位数年份 | |
M | 月份 | |
d | 日期 | |
h | AM/PM 12小时格式 | AM 12 |
H | 24小时格式小时数 | |
m | 分钟数 | |
s | 秒数 | |
S | 毫秒数 | |
E | 星期几 | Tuesday |
D | 一年中的第几天 | 120 |
F | 一个月中第几周的周几 | 2 ( second Wed in July ) |
w | 一年中第几周 | 40 |
W | 一个月中第几周 | 1 |
a | AM/PM 标记 | PM |
k | 一天中的小时(1-24) | 24 |
K | AM/PM (0-11)格式小时 | 10 |
解析字符串为时间
SimpleDateFormat 类有一些附加的方法,特别是 parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。
SimpleDateFormat ft= new SimpleDateFormat("yyyy-MM-dd");
String input = "1818-11-11";
Date date;
try{
date = ft.parse(input);
System.out.print(date)
}catch(ParseException e){
System.out.println("Unparseable using " + ft);
}
java休眠
sleep() 可以使当前线程进入停滞状态(阻塞当前线程),让出Cpu的使用。
Thread.sleep(1000*3); //停滞3s
Calendar类
Calendar类功能比Date类要强大,实现也更复杂一些。Calendar类是一个抽象类,在实际使用时实现特定的子类的对象。
关于对象的创建
Calendar c = Calendar.getInstance(); // 默认为当前时间
c.set(2009,7-1,12); // 指定时间
Calender类的月份是从0开始,但是日期和年份是从1开始的。
常用常量列表
常量 | 描述 |
---|---|
Calendar.YEAR | 年份 |
Calendar.MONTH | 月份 |
Calendar.DATE | 日期 |
Calendar.DAY_OF_MONTH | 日期,和上边的字段意义完全一致 |
Calendar.HOUR | 12小时制的小时 |
Calendar.HOUR_OF_DAY | 24小时制的小时 |
Calendar.MINUTE | 分钟 |
Calendar.SECOND | 秒 |
Calendar.DAY_OF_WEEK | 星期几 |
设置时间
set 设置
public final void set(int year,int month,int date)
利用字段设置
public void set(int field,int value)
c1.set(Calendar.DATE,10);
c1.set(Calendar.YEAR,2008)
把对象的日期设置后,其他数值会被重新计算,年份修改,其他数值也会被重新计算。
add 设置
Calendar c1= Calendar.getInstance();
把c1对象的日期+10,也就是c1表示为10天后的日期,其他数值都会重新计算
c1.add(Calendar.DATE,10)
把c1对象的日期减去10,也就是c1表示10天前的日期,其他数值重新计算。
c1.add(Calendar.DATE,-10)
其他字段类推
Calendar类对象信息的获取
Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);
GregorianCalendar类
该类是 Calendar类的一个具体实现,但使用度存疑。先不管,用的时候填坑。