Java的日期时间格式化和Calendar

Java的日期类Date和抽象类Calendar,Date类是Java早期的时间类。然后因为国际化和各种格式的需要和日期时间加减复杂运算的需要产生了Calendar抽象类。
以下是以下入门了解Date和Calendar类的简单操作。可以全部复制运行,运行体验。

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateFormatImp {
    public static void main(String[] args) throws ParseException {
        //1. 使用DateFormat抽象类的静态方法
        //DateFormat.SHORT DateFormat.MEDIUM DateFormat.LONG  DateFormat.FULL 四种日期/时间 格式
        Date date = new Date();
        DateFormat dateInstance = DateFormat.getDateInstance(DateFormat.LONG);
        System.out.println(dateInstance.format(date));

        //使用getTimeInstance的静态方法
        DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.LONG);
        System.out.println(dateFormat.format(date));

        //使用getDateTimeInstance的静态方法,可以对日期和时间的格式进行单独的处理
        DateFormat datetiDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
        System.out.println(datetiDateFormat.format(date));


        //1. 使用DateFormat的子类
        //格式化:SimpleDateFormat类转字符串
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 EEEE aa HH时mm分ss秒S毫秒");
        System.out.println(simpleDateFormat.format(new Date()));
        //解析:字符串转SimpleDateFormat类
        DateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
        Date date2 = simpleDateFormat2.parse("2023-4-5");
        DateFormat dateInstance2 = DateFormat.getDateInstance();
        System.out.println(dateInstance2.format(date2));

        /*
         * 因为Date早期的设计没有考虑到国际化和Date许多方法不能满足需求,如对日期时间的加减的复杂运算,所以由此提出了Calendar类
         * Calendar类是一个抽象类,不能实例化 创建对象可以通过 getInstance()方法创建通用的对象,或者使用其子类创建对象
         */
        Calendar calendar = Calendar.getInstance(); // 获取一个Calendear实例
        calendar.set(2049,9,1);     //设置具体的年月日2049年9月1日
        long time = calendar.getTimeInMillis();     //获取固定年月日到1970年的毫秒数
        Date date3 = new Date();                    // 获取一个当前的时间的时间类对象
        long time1 = date3.getTime();               // 获取当前时间距离1970年的毫秒数
        long day = (time-time1)/(1000*60*60*24);     // 计算固定时间到当前的时间的毫秒数之差,并利用差得出相差的天数       
        System.out.println("================================中华人名共和国成立100周年倒计时====================================");
        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy年MM月dd日");
        String format = simpleDateFormat.format(date3);
        System.out.println("现在是:"+format);
        System.out.println("倒计时"+ day +"天");
        System.out.println("================================获取当前时间的年月日====================================");
        calendar.setTime(date);
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH) + 1);  //月份是以0开始的所有要加1
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

        System.out.println("================================获取当前时间的年月日(整合之后)====================================");
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;
        int today = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("现在是:"+ year + "年"+ month +"月" + today + "日");

    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值