13 日期
在Java中使用日期,需导入 java.util.Date
类
1 | import java.util.Date; |
13.1 创建一个日期对象
Date date = new Date();
1 | Date now = new Date(); |
- 日期对象转字符串对象:
1 | String s = now.toString() |
13.2 getTime()方法
getTime()
是Date()对象的一个方法,返回类型 long
,用于获取从1970-01-01 8:00:00开始到现在经历的毫秒数
另外,Date().getTime()
和 System.currentTimeMillis()
是一样的
1 | package date; |
13.3 格式化日期并转为字符串
格式化日期:
需要用到 SimpleDateFormat
类
1 | import java.text.SimpleDateFormat; |
-
指定格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
//y 代表年
//M 代表月
//d 代表日
//H 代表24进制的小时
//h 代表12进制的小时
//m 代表分钟
//s 代表秒
//S 代表毫秒
// 以上7种可以只选其中一种或多种,根据自己需要来,如:
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd" );
SimpleDateFormat sdf2 = new SimpleDateFormat("MM/dd" ); -
利用sdf对象的
format
方法对日期Date()
进行格式化,并返回格式化后的字符串
1
2Date d = new Date();
String str = sdf.format(d); //这样日期就按格式转为了字符串
13.4 字符串转日期
三个步骤 :
-
指定字符串格式:
1
2
3SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" );
//SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy/MM/dd" ); -
创建字符串,注意格式要与 sdf 一致
1
2
3String str = "2019-1-15 16:02:27";
//String str1 = "2019-1-15"; -
创建日期对象,用 sdf的
parse(str)
方法来把字符串转为日期对象1
Date d = sdf.parse(str);
13.5 日历 Calendar
使用前需要导入:
1 | import java.util.Calendar; |
-
获取日历对象
Calendar.getInstance();
1
Calendar cl = Calendar.getInstance();
-
通过日历对象得到日期对象:
getTime()
1
Date d = cl.getTime();
-
日期设置:把
cl
这个日历,调成日期(时间原点) —— 1970.1.1 08:00:00,用setTime()
1
2Date d2 = new Date(0);
cl.setTime(d2);
13.6 翻日历
add方法,在原日期上增加(add) 年/月/日
set方法,直接设置(set) 年/月/日
-
创建日历对象
1
Calendar c = Calendar.getInstance();
-
获取当前日期
1
Date now = c.getTime();
-
把日历改成下个月的今天
1
2
3
4c.setTime(now); //表示把日历改为当前时间
c.add(Calendar.MONTH, 1);
//在当前时间now的基础上修改日历,这里修改了月份,下个月 = 本月 + 1 -
把日历改成去年的今天
1
2c.setTime(now);
c.add(Calendar.YEAR, -1); //负数表示以前的,去年 = 今年 - 1 -
把日历直接设置成上个月的第三天
1
2
3
4
5
6c.setTime(now);
c.add(Calendar.MONTH, -1); //先改月份
c.set(Calendar.DATE, 3); //再改日数,注意用set
//如果是今天后的第三天,则用:
//c.add(Calendar.DATE, 3)