切记在所有日期类中,计算机所认同的月份是 0、1、2、3、4。---
对应的是 1月份,2月份、3月份、4月份、5月份
Date类
三种创建方式。
不带参
得到现在的时间
Date date = new Date();
System.out.println(date);
带参输入自己想要的年月日(注意。这里0是一月)
(这里的年,不是输入年份,而是输入,现在年份距离1900年的间距。)
例如,我想要设置为2008年。↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Date date1 = new Date(2008-1900,0,12);
System.out.println(date1);
带参输入自己想要的年月日时分秒(注意。这里0是一月)
Date date2 = new Date(2008-1900,0,1,12,11,58);
System.out.println(date2);
带参数 参数为字符串:
(字符串的话,必须输入指定格式的字符串。字符串没有那么讲究,年月日是多少就是多少)
Date date = new Date("1998,1,6");
这个就代表 1998 年 1 月 6 日;
Date类的简单运用。计算两个日期间相差几天。
使用getTime()方法,计算出现在时间距离1970 年 1 月 1 日 00:00:00 的时间。。。:毫秒
两个时间 的毫秒相减。。。除以 24*60*60*1000 一天该有的毫秒数。
Date date = new Date(2008-1900,0,15);
Date date1 = new Date(2008-1900,0,12);
long subtract = (date.getTime()-date1.getTime())/(24*60*60*1000);
System.out.println(subtract);
SimpleDateFormat类
用来格式化日期的
相当于构造一个日期模板
format()方法。将Date日期类返回城想要的字符串格式
原本。一个Date()得到了现在的时间。他得到的的属性是非常全的,包括时分秒。毫秒。。星期几。。等等
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
创建一个。年 - 月 - 日 (年、月、日 使用固定的单词,代表。'-'号等是随便写的)
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String str =format.format(date);
System.out.println(str);
使用设计好的模板。得到相应的字符串。
2018-02-21
换一个模板。
这次加上时分秒
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
运行
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str =format.format(date);
System.out.println(str);
运行结果为:2018-02-21 10:35:41
小技巧:使用固定的天数,获取当月的第一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-01");
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-01");
String str = format.format(date);
System.out.println(str);
parse()方法。将固定格式的字符串转换成想要的Date格式。
与format相反的用法
String str ="2018-02-21 10:35:41";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = format.parse(str);
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
使用固定的格式接受一个字符串里的时间参数。
| 字母 | 日期或时间元素 | 表示 | 示例 |
|---|---|---|---|
G | Era 标志符 | Text | AD |
y | 年 | Year | 1996; 96 |
M | 年中的月份 | Month | July; Jul; 07 |
w | 年中的周数 | Number | 27 |
W | 月份中的周数 | Number | 2 |
D | 年中的天数 | Number | 189 |
d | 月份中的天数 | Number | 10 |
F | 月份中的星期 | Number | 2 |
E | 星期中的天数 | Text | Tuesday; Tue |
a | Am/pm 标记 | Text | PM |
H | 一天中的小时数(0-23) | Number | 0 |
k | 一天中的小时数(1-24) | Number | 24 |
K | am/pm 中的小时数(0-11) | Number | 0 |
h | am/pm 中的小时数(1-12) | Number | 12 |
m | 小时中的分钟数 | Number | 30 |
s | 分钟中的秒数 | Number | 55 |
S | 毫秒数 | Number | 978 |
z | 时区 | General time zone | Pacific Standard Time; PST; GMT-08:00 |
Z | 时区 | RFC 822 time zone | -0800 |
Calendar类 ----日历类
Calendar类是一个抽象类。不能new 对象 ,使用固定的方法返回一个对象
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓获取现在的日期。使用相应的参数得到。年。月
想要获取 年、月、日、星期几、时、分、秒、...等等只要使用get()方法加上相应的参数即可
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH)+1);//月在计算机中是 0、1、2、3
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH)+1);//月在计算机中是 0、1、2、3
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
我对于参数的理解。
YEAR = 年
MONTH =月
DAY _OF_ MONTH = 理解成一个月中的第几天。
DAY _OF_ YEAR= 理解成一年中的第几天。(按这个记忆方式。YEAY 中的第 DAY)
DAY_OF_WEEK = 一星期中的第几天。 星期中的第几天。周日是第一天
求今天星期几。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
如果今天是周日那么结果是 1,(周日是,一星期的第一天)
如果今天是周一那么结果是2.---------------------
使用Calendar设置时间
设置是使用set()方法。想要设置那个时间段,依次设置就行
设置年月日↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2018);
calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
calendar.set(Calendar.DAY_OF_MONTH,21);
想要使用SimpleDateFormat类来 格式化成相应的字符串。
需要把 Calendar类转换成 Date
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2018);
calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
calendar.set(Calendar.DAY_OF_MONTH,21);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(format.format(calendar.getTime()));
添加时间add()
把现在的时间多少天或者多少小时。
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2018);
calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
calendar.set(Calendar.DAY_OF_MONTH,21);
比如我想知道某个日期100天后星期几
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2018);
calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
calendar.set(Calendar.DAY_OF_MONTH,21);
//加上一百天。
calendar.add(Calendar.DAY_OF_MONTH,100);
int week = calendar.get(Calendar.DAY_OF_WEEK)-1;
System.out.println(week==0?7:week);
↑↑↑↑↑↑↑↑↑↑↑负数是减去几天。
参数大全↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
| 字段摘要 | |
|---|---|
static int | ALL_STYLES指示所有风格名称的 getDisplayNames 的风格说明符,比如 "January" 和 "Jan"。 |
static int | AM指示从午夜到中午之前这段时间的 AM_PM 字段值。 |
static int | AM_PMget 和 set 的字段数字,指示 HOUR 是在中午之前还是在中午之后。 |
static int | APRIL指示在格里高利历和罗马儒略历中一年中第四个月的 MONTH 字段值。 |
protected boolean | areFieldsSet如果 fields[] 与当前的设置时间同步,则返回 true。 |
static int | AUGUST指示在格里高利历和罗马儒略历中一年中第八个月的 MONTH 字段值。 |
static int | DATEget 和 set 的字段数字,指示一个月中的某天。 |
static int | DAY_OF_MONTHget 和 set 的字段数字,指示一个月中的某天。 |
static int | DAY_OF_WEEKget 和 set 的字段数字,指示一个星期中的某天。 |
static int | DAY_OF_WEEK_IN_MONTHget 和 set 的字段数字,指示当前月中的第几个星期。 |
static int | DAY_OF_YEARget 和 set 的字段数字,指示当前年中的天数。 |
static int | DECEMBER指示在格里高利历和罗马儒略历中一年中第十二个月的 MONTH 字段值。 |
static int | DST_OFFSETget 和 set 的字段数字,以毫秒为单位指示夏令时的偏移量。 |
static int | ERA指示年代的 get 和 set 的字段数字,比如罗马儒略历中的 AD 或 BC。 |
static int | FEBRUARY指示在格里高利历和罗马儒略历中一年中第二个月的 MONTH 字段值。 |
static int | FIELD_COUNTget 和 set 可识别的不同字段的数量。 |
protected int[] | fields此日历当前设置时间的日历字段值。 |
static int | FRIDAY指示 Friday 的 DAY_OF_WEEK 字段值。 |
static int | HOURget 和 set 的字段数字,指示上午或下午的小时。 |
static int | HOUR_OF_DAYget 和 set 的字段数字,指示一天中的小时。 |
protected boolean[] | isSet通知是否设置了该日历某一指定日历字段的标志。 |
protected boolean | isTimeSet如果 time 值是一个有效值,则返回 true。 |
static int | JANUARY指示在格里高利历和罗马儒略历中一年中第一个月的 MONTH 字段值。 |
static int | JULY指示在格里高利历和罗马儒略历中一年中第七个月的 MONTH 字段值。 |
static int | JUNE指示在格里高利历和罗马儒略历中一年中第六个月的 MONTH 字段值。 |
static int | LONG指示长名称的 getDisplayName 和 getDisplayNames 的风格说明符,比如 "January"。 |
static int | MARCH指示在格里高利历和罗马儒略历中一年中第三个月的 MONTH 字段值。 |
static int | MAY指示在格里高利历和罗马儒略历中一年中第五个月的 MONTH 字段值。 |
static int | MILLISECONDget 和 set 的字段数字,指示一秒中的毫秒。 |
static int | MINUTEget 和 set 的字段数字,指示一小时中的分钟。 |
static int | MONDAY指示 Monday 的 DAY_OF_WEEK 字段值。 |
static int | MONTH指示月份的 get 和 set 的字段数字。 |
static int | NOVEMBER指示在格里高利历和罗马儒略历中一年中第十一个月的 MONTH 字段值。 |
static int | OCTOBER指示在格里高利历和罗马儒略历中一年中第十个月的 MONTH 字段值。 |
static int | PM指示从中午到午夜之前这段时间的 AM_PM 字段值。 |
static int | SATURDAY指示 Saturday 的 DAY_OF_WEEK 字段值。 |
static int | SECONDget 和 set 的字段数字,指示一分钟中的秒。 |
static int | SEPTEMBER指示在格里高利历和罗马儒略历中一年中第九个月的 MONTH 字段值。 |
static int | SHORT指示短名称的 getDisplayName 和 getDisplayNames 的风格说明符,比如 "Jan"。 |
static int | SUNDAY指示 Sunday 的 DAY_OF_WEEK 字段值。 |
static int | THURSDAY指示 Thursday 的 DAY_OF_WEEK 字段值。 |
protected long | time日历的当前设置时间,以毫秒为单位,表示自格林威治标准时间 1970 年 1月 1 日 0:00:00 后经过的时间。 |
static int | TUESDAY指示 Tuesday 的 DAY_OF_WEEK 字段值。 |
static int | UNDECIMBER指示一年中第十三个月的 MONTH 字段值。 |
static int | WEDNESDAY指示 Wednesday 的 DAY_OF_WEEK 字段值。 |
static int | WEEK_OF_MONTHget 和 set 的字段数字,指示当前月中的星期数。 |
static int | WEEK_OF_YEARget 和 set 的字段数字,指示当前年中的星期数。 |
static int | YEAR指示年的 get 和 set 的字段数字。 |
static int | ZONE_OFFSETget 和 set 的字段数字,以毫秒为单位指示距 GMT 的大致偏移量。 |
1762

被折叠的 条评论
为什么被折叠?



