Java日期操作

本文介绍了Java中日期格式化的关键类DateFormat及其子类SimpleDateFormat的使用方法。通过示例代码展示了如何进行日期到文本、文本到日期的转换,并详细解释了不同模式下的日期格式化效果。同时,还演示了如何利用Calendar获取指定日期所在月份的第一天和最后一天。
摘要由CSDN通过智能技术生成

@[TOC]日期转换、格式化

日期格式化——DateFormat/SimpleDateFormat

DateFormat 是日期/时间格式化子类的抽象类。其子类(如 SimpleDateFormat)能够进行格式化(也就是日期→文本)、解析(文本→日期)和标准化日期。

在创建 DateFormat 对象时不能使用 new 关键字,而应该使用 DateFormat 类中的静态方法 getDateInstance(),示例代码如下:

    // Date和字符串相互转化(字符串转换为Date类型时,有汉字的字符串可以使用0或1模式,没汉字的可以使用默认、2、3模式)
    // 默认格式化模式
    //    val df = DateFormat.getDateInstance()
    //    val str1 = df.format(new Date()) // 2021-11-11
    //    val date = df.parse("2021-11-11") // Thu Nov 11 00:00:00 CST 2021

    // 0代表的格式化模式
    //    val df = DateFormat.getDateInstance(0)
    //    val str1 = df.format(new Date()) // 2021年11月11日 星期四
    //    val date = df.parse("2021年11月11日 星期四") // Thu Nov 11 00:00:00 CST 2021

    // 1代表的格式化模式
    // val df = DateFormat.getDateInstance(1)
    // val str1 = df.format(new Date()) // 2021年11月11日
    // val date = df.parse("2021年11月11日 星期四") // Thu Nov 11 00:00:00 CST 2021

    // 2代表的格式化模式
    //    val df = DateFormat.getDateInstance(2)
    //    val str1 = df.format(new Date()) // 2021-11-11
    //    val date = df.parse("2021-11-11") // Thu Nov 11 00:00:00 CST 2021

    // 3代表的格式化模式,无其他模式
    //    val df = DateFormat.getDateInstance(3)
    //    val str1 = df.format(new Date()) // 21-11-11
    //    val date = df.parse("2021-11-11") // Thu Nov 11 00:00:00 CST 2021

    // SimpleDateFormat使用
    val sf = new SimpleDateFormat("yyyy-MM-dd")
    val date = sf.parse("2021-11-11") // Thu Nov 11 00:00:00 CST 2021
    val str = sf.format(new Date()) // 2021-11-11

    val sf2 = new SimpleDateFormat("yyyyMMdd")
    val date1 = sf2.parse("20211111") // Thu Nov 11 00:00:00 CST 2021
    val str1 = sf2.format(new Date()) // 20211111

    // 给定一个月的其中一个日期,获取所在月的第一天和最后一天
    val cal = Calendar.getInstance()
    cal.setTime(date1)
    cal.set(Calendar.DAY_OF_MONTH, 1) // 变换第二个参数获取月的相应的第几天,但这种写法会和roll()方法相互干涉
    println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime())) // 月第一天 2021-11-01
    cal.roll(Calendar.DAY_OF_MONTH, -1)
    println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime())) // 月最后一天 2021-11-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值