Date API

Date

日期和时间

构造器

构造器说明
public Date()创建一个Date对象,代表系统此刻日期时间
public Date(long time)把时间毫秒值转换成Date日期对象

常见方法

方法名说明
public long getTime()返回从1970年1月1日 00:00:00 到此刻的总毫秒数
public void setTime(long time)设置日期对象的时间为当前时间毫秒值对应的时间

案例演示

public class DateTest {
    public static void main(String[] args) {
        //创建一个Date对象,代表系统当前时间信息
        Date d = new Date();
        System.out.println(d);

        //Date获取时间戳
        System.out.println("-------------------");
        System.out.println(d.getTime());
        //System获取时间戳
        System.out.println("-------------------");
        System.out.println(System.currentTimeMillis());

        //时间戳转换成日期
        System.out.println("-------------------");
        System.out.println(new Date(d.getTime()));

        //setTime(long time)
        System.out.println("-----------------");
        long time = d.getTime() + 1000000 * 1000;   //当前时刻+100w秒
        Date d2 = new Date();
        d2.setTime(time);
        System.out.println(d2);
    }
}

SimpleDateFormat

简单日期格式化,用来把日期对象、时间戳格式化成日期格式

常见构造器说明
public SimpleDateFormat(String pattern)创建简单日期格式化对象,并封装时间的格式
格式化时间的方法说明
public final String format(Date date)将日期格式化成日期/时间字符串
public final Striong format(Object time)将时间戳格式化成日期/时间字符串

SimpleDateFormat解析字符串时间成为日期对象

解析方法说明
public Date parse(String source)把字符串时间解析成日期对象

案例演示

public class SimpleDateFormatTest {
    public static void main(String[] args) throws ParseException {
        Date d = new Date();
        System.out.println(d);

        System.out.println("-----------------");
        long time = d.getTime();
        System.out.println(time);

        //格式化日期对象和时间戳
        System.out.println("-----------------");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss EEE a");
        String date1 = simpleDateFormat.format(d);
        System.out.println(date1);

        //解析字符串时间成日期对象
        System.out.println("-------------------");
        String dateStr = "2024-5-20 05:20:00";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date d1 = sdf.parse(dateStr);
        System.out.println(d1);
    }
}

parttern字符串详解

字符含义详解
y / yy / yyyy年份y:不带前导零的年(如24);yy:两位数的年(如01,23);yyyy:四位数完整年份(如2024)
M / MM / MMM / MMMM月份M:M:不带前导零的月份数字(1-12);MM:带有前导零的月份数字(01-12);MMM:简写月份名(Jan-Dec);MMMM:全称月份名(January-December)
d / dd日期d:不带前导零的天数(1-31);dd:带有前导零的天数(01-31)
H / HH24小时制小时数H:不带前导零的小时数(0-23);HH:带有前导零的小时数(00-23)
s / sss:不带前导零的秒数(0-59);ss:带有前导零的秒数(00-59)

其他参数由于方法过时就不过多介绍

Calendar

Calendar代表系统此刻时间对应的日历

通过它可以单独获取、修改时间中的年、月、日、时、分、秒等

Calendar常见方法

方法名说明
public static Calendar getInstance()获取当前日历对象
public int get(int field)获取日历中的某个信息
public final Date getTime()获取日期对象
public long getTimeInMillis()获取时间戳
public void set(int field, int value)修改日历的某个信息
publi void add(int field, int amount)为某个信息增加/减少指定的值

案例演示

public class CalendarTest1 {
    public static void main(String[] args) {
        //得到系统此刻时间对应的日历对象
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);

        //拿到日历中记录的日期对象
        System.out.println("-------------------");
        Date date = calendar.getTime();
        System.out.println(date);

        //获取时间戳
        long MillisTime = calendar.getTimeInMillis();
        System.out.println(MillisTime);

        //修改日历的某个信息
        System.out.println("-------------------");
        calendar.set(Calendar.YEAR, 2025);
        System.out.println(calendar.get(Calendar.YEAR));

        //为某信息增加/减少指定的值
        System.out.println("-------------------");
        calendar.add(Calendar.YEAR, -1);    //年份-1
        System.out.println(calendar.get(Calendar.YEAR));
        calendar.add(Calendar.YEAR, 99);    //年份+99
        System.out.println(calendar.get(Calendar.YEAR));
    }
}

Calendar字段详解

字段说明
YEAR年份
MONTH月份,Calendar中,月份从0开始计数,0表示1月,1表示2月,依此类推
DAY_OF_MONTH一个月中的某一天(1-31,号数)
DAY_OF_WEEK一周中的某一天,从Sunday(1)到Saturday(7)
DAY_OF_WEEK_IN_MONTH当前月中的第几个星期几
DAY_OF_YEAR当前年份中的第几天(1-366)
WEEK_OF_MONTH当前月中的第几周
WEEK_OF_YEAR当前年份中的第几周
AM_PM表示一天中的上午/下午时段,0代表上午(AM),1代表下午(PM)
HOUR12小时制的小时数(0-11,中午12点也用0表示)
HOUR_OF_DAY24小时制的小时数(0-23)
MINUTE分钟数(0-59)
SECOND秒数(0-59)
MILLISECOND毫秒数(0-999)

案例演示

public class CalendarTest2 {
    public static void main(String[] args) {
        //得到系统此刻时间对应的日历对象
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);

        //获取日历中的年
        System.out.println("-------年-------");
        int year = calendar.get(Calendar.YEAR);
        System.out.println(year);

        //获取日历中的月
        System.out.println("-------月-------");
        int month = calendar.get(Calendar.MONTH + 1);   //Calendar中,月份从0开始计数,真实月份需在返回的结果上再加1
        System.out.println(month);

        //获取日历中的号数
        System.out.println("-------日-------");
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);

        //获取星期几的数据
        System.out.println("-------星期几-------");
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); //Sunday为1,Saturday为7
        switch (dayOfWeek) {
            case 1:
                System.out.println("星期天");
                break;
            case 2:
                System.out.println("星期一");
                break;
            case 3:
                System.out.println("星期二");
                break;
            case 4:
                System.out.println("星期三");
                break;
            case 5:
                System.out.println("星期四");
                break;
            case 6:
                System.out.println("星期五");
                break;
            case 7:
                System.out.println("星期六");
                break;
        }

        System.out.println("-------当月第几个星期几-------");   //星期几为获取参数
        int dayOfWeekInMonth = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
        System.out.println(dayOfWeekInMonth);   //比如今天是2024.2.20,即今天是2024年2月的第3个星期二

        System.out.println("-------今年的第多少天-------");
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println(dayOfYear);

        System.out.println("-------当前月的第多少周-------");
        int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
        System.out.println(weekOfMonth);

        System.out.println("-------当前年份的第多少周-------");
        int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
        System.out.println(weekOfYear);

        System.out.println("-------上午/下午-------");
        String status = "";
        int AMPM = calendar.get(Calendar.AM_PM);    //返回0或1,0代表上午,1代表下午
        switch (AMPM) {
            case 0:
                status = "上午";
                break;
            case 1:
                status = "下午";
                break;
        }
        System.out.println(status);

        System.out.println("-------12制小时数-------");
        int hour = calendar.get(Calendar.HOUR);
        System.out.println(status + hour + "点");

        System.out.println("-------24制小时数-------");
        int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
        System.out.println(hourOfDay);

        System.out.println("-------分钟数-------");
        int minute = calendar.get(Calendar.MINUTE); //0-59
        System.out.println(minute);

        System.out.println("-------秒数-------");
        int second = calendar.get(Calendar.SECOND); //0-59
        System.out.println(second);

        System.out.println("-------毫秒数-------");    //0-999
        int millisecond = calendar.get(Calendar.MILLISECOND);
        System.out.println(millisecond);

        System.out.println("-------完整时间-------");
        System.out.println(year + "年" + month + "月" + day + "日"
        + hourOfDay + "点" + minute + "分" + second + "秒");
    }
}

注: JDK8之后Date类的许多方法已经过时

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

离歌慢饮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值