Java Calendar类的介绍
简介
SimpleDateFormat类:
在java.text包下
它是DateFormat类的直接子类,继承DateFormat类。我是这么理解SimpleDateFormat类的,它相对于Datef类更接地气,你可以随意给他指定一个形式的日期,进行更改。
| 字段 | 描述 |
|---|---|
| YEAR | 年 |
| MONTH | 月 |
| DATE | 日 |
| HOUR_OF_DAY | 时 |
| MINUTE | 分 |
| SECOND | 秒 |
| DATE_OF_MONTH | 和DATE一样 |
| WEEK_OF_YEAR | 一个月第几周的第几天 |
| WEEK_OF_MONTH | 一月的第几周 |
| DAY_OF_YEAR | 一年的第多少天 |
| WEEK_OF_YEAR | 一年的第多少周 |
Date date = new Date(); SimpleDateFormat spf = new SimpleDateFormat("yyyy年-MM月-dd日:HH时-mm分-ss秒"); System.out.println(spf.format(date));
输出为:
2021年-7月-14日:17时-15分-53秒
其实这里可以用sdf.format(System.currentTimeMillis()),而不是用Date类,会更快一些。
这里有两个方法,一定要搞清楚,一个是spf.format(Date),一个是spf.parse(String),分别代表,将日期变为新的格式,从给定的字符串中提取出日期,提取出来的日期Date类型。
同时在调用parse这个方法时,会出现异常, try {
} catch (ParseException e) {
e.printStackTrace(); }
这应该不难理解,可能字符串提取不出日期,就会捕捉异常。
Calendar类:
在java.util包下
Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象
package com.hp.date; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class CalendarDemo{
public static void main(String[] args) throws Exception {
//获取获取系统的当前日历对象 Calendar instance = Calendar.getInstance(); //1、获取今天是周几 int weekDay = instance.get(Calendar.DAY_OF_WEEK); System.out.println("今天是周:" + (weekDay - 1)); //2、获取系统当前年 int year = instance.get(Calendar.YEAR); System.out.println("今年是:" + year + "年"); //3、获取系统当前月 int month = instance.get(Calendar.MONTH); System.out.println("本月是:" + (month + 1) + "月"); //4、获取系统当前日 int day = instance.get(Calendar.DATE); System.out.println("今天是" + day + "号"); //5、获取上午跟下午 int am_pm = instance.get(Calendar.AM_PM); if (am_pm == 0) System.out.println("是上午"); else System.out.println("是下午"); //6、获取当前的系统时间[date-->String]的过程 Date time = instance.getTime();//获取的是当前系统的时间 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); String showTime = format.format(time); System.out.println("当前系统时间为:" + showTime); //7、自定义日历的时间 String strTime = "2021-07-07"; Date date = new SimpleDateFormat("yyyy-MM-dd").parse(strTime); instance.setTime(date);//将时间对象data设置为新的日历 System.out.println("修改后的系统时间为:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(instance.getTime())); } System.out.println("------------Calendar和Date转换------------"); Date now = calendar.getTime(); calendar.setTime(now); System.out.println("------------Calendar日期计算以及判断------------"); calendar = new GregorianCalendar(); Calendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, 2800); //是否在某个时间(calendar2)之后 System.out.println(calendar.after(calendar2)); //是否在某个时间(calendar2)之前 System.out.println(calendar.before(calendar2)); //增加多少年年,月日以及时分秒同理 calendar.add(Calendar.YEAR, -10); } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213732.html原文链接:https://javaforall.net
