Java时间相关函数和日期格式化函数
Java提供了很多针对时间的相关函数和日期格式化的函数,下面就来逐一介绍。
一、时间相关函数:
1.获取当前时间
可以通过以下代码获取当前时间:
Date nowTime = new Date();
2.时间戳转日期
long timestamp = 1616667084000L; //时间戳,单位为毫秒 Date date = new Date(timestamp);
3.日期转时间戳
Date date = new Date(); long timestamp = date.getTime();
4.获取当前时间的年、月、日、时、分、秒
Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND);
5.获取指定日期的年、月、日、时、分、秒
Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND);
6.比较两个日期大小
int result = date1.compareTo(date2); //result返回值: //0 表示 date1 和 date2 相等 //1 表示 date1 在 date2 之后 //-1 表示 date1 在 date2 之前
7.计算两个日期相差的天数
long diff = date1.getTime() - date2.getTime(); long diffDays = diff / (24 * 60 * 60 * 1000);
8.日期加上指定天数
Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, 7); //7表示加上7天 Date newDate = calendar.getTime();
9.日期加上指定小时数
Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR_OF_DAY, 2); //2表示加上2小时 Date newDate = calendar.getTime();
二、日期格式化函数:
日期格式化函数可以将日期类型的数据按照指定的格式转换成字符串类型的数据。
1.SimpleDateFormat类
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = dateFormat.format(date);
其中,format()方法的参数可以为以下格式:
| 格式 | 描述 | 示例 |
| ---- | ---- | ---- |
| yyyy | 四位数字的完整年份 | 2021 |
| MM | 月份,从1至12 | 04 |
| dd | 月份中的天数,从1至31 | 02 |
| HH | 小时数,从0至23 | 15 |
| mm | 分钟数,从0至59 | 30 |
| ss | 秒数,从0至59 | 45 |
2.DateFormat类
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT); String dateString = dateFormat.format(date);
其中,getDateTimeInstance()方法的两个参数分别表示日期和时间的显示格式,可以取值为:
| 参数 | 描述 |
| ---- | ---- |
| DateFormat.FULL | 完整格式,如2021年4月26日星期一 |
| DateFormat.LONG | 长格式,如2021年4月26日 |
| DateFormat.MEDIUM | 中等格式,如2021-04-26 |
| DateFormat.SHORT | 短格式,如21-4-26 |
3.MessageFormat类
MessageFormat类的主要作用是格式化带参数的字符串,比如“{1}年{0}月{2}日”。
Object[] arguments = {4, 26, 2021};
String pattern = "{1}年{0}月{2}日";
String message = MessageFormat.format(pattern, arguments);
其中,{0}、{1}、{2}表示参数的位置,需要按照数组arguments中参数的顺序填入。
综上所述,Java提供了很多方便的时间相关函数和日期格式化函数,可以使我们更方便地处理日期和时间。
