java对日期时间的操作总结

本文介绍了Java中处理日期时间的相关类。Date类可封装当前日期和时间,提供两个构造函数,getTime方法可用于比较日期大小;SimpleDateFormat能格式化日期,也可将字符串日期转化为Date对象;Calendar类功能强大,可获取日期的详细信息,如星期几等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值