java对日期时间的操作总结

1,Date

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。
第一个构造函数使用当前日期和时间来初始化对象。
Date( )
第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
Date(long millisec)
两个函数会返回相同的对象,例如Fri May 31 14:39:30 GMT+08:00 2019
我们比较常用的方法为
long getTime( )
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数,可以用来比较日期大小

2,SimpleDateFormat

一般直接用new Date获取的日期时间可用性不强,需要使用 SimpleDateFormat 格式化日期
SimpleDateFormat ft = new SimpleDateFormat (“yyyy-MM-dd HH:mm:ss”);
ft.format(new Date( ));

得到结果为:2019-05-31 14:39:30,还可以只用"yyyy-MM-dd"得到日期字符串,然后调用equals来比较是否为当天。
注意yyyy-MM-dd HH:mm:ss中的大小写,HH为大写为24小时制,小写为12小时制。
SimpleDateFormat类不仅可以将Date对象格式化为字符串,还可以将输入的字符串日期转化为Date对象
SimpleDateFormat ft = new SimpleDateFormat (“yyyy-MM-dd HH:mm:ss”);
Date dd = ft.parse(time);

3,Calendar

Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。可以用以下方法获取当前日期是星期几。
public static int dayForWeek(String pTime) {
int dayForWeek = 0;
try {
SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
Calendar c = Calendar.getInstance();
c.setTime(format.parse(pTime));
if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
dayForWeek = 7;
} else {
dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
}
} catch (ParseException e) {
e.printStackTrace();
}
return dayForWeek;
}
类似的Calendar方法还有
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 星期几
注:当调用c1.set(年, 月, 日);Calender的月份是从0开始的,但日期和年份是从1开始的
日期设为0表示上个月的最后一天,如果是负数则表示上个月天数加上这个负数;
月份也可以是负数,规则与日期一样;
实测将年份设为非正数时,会自动变为绝对值+1,不知其意义。

再补充一点javaScript中怎么把格式化日期转化为ms:

function stringToTimeSquence(str) {
    console.log(str);      
	str = '2016-3-18' + ' ' + str;
	console.log(str);
  	str = str.replace(/-/g,'/');
	console.log(str);
   	let date = new Date(str);
   	return date.getTime();
}

var time = stringToTimeSquence('15:55:52');
console.log(time); 

输出结果为:

15:55:52
2016-3-18 15:55:52
2016/3/18 15:55:52
1458287752000

需要将日期中的-转化为/,否则Date函数不认识,会返回Invalid Date,date.getTime会返回NaN

发布了48 篇原创文章 · 获赞 27 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41480546/article/details/90721055
今日推荐