ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Date 、日期、Calendar 类 2021-11-28

2021-11-28 20:02:12  阅读:122  来源: 互联网

标签:11 String 28 System println 2021 Date Calendar public


1. Date 类的概述和构造方法

image-20211123192819847
1.常用构造方法

Date 代表了一个特定的时间,精确到毫秒

方法名说明
public Date()分配一个 Date 对象,并初始化,以便它代表它被分配的时间,精准到毫秒
public Date( long date )分配一个 Date 对象,并将其初始化为表示从标准基准时间起指定的毫秒数
        // public Date():  分配一个 Date 对象,并初始化,以便它代表它被分配的时间,精准到毫秒
        Date d1=new Date();
        System.out.println(d1);  // 输出结果为  Wed Nov 24 18:20:51 GMT+08:00 2021

        // public Date( long date ):  分配一个 Date 对象,并将其初始化为表示从标准基准时间起指定的毫秒数
        long l=1000*60*60;
        Date d2=new Date(l);
        System.out.println(d2);  // 输出结果为  Thu Jan 01 09:00:00 GMT+08:00 1970
2. Date 类的常用方法
方法名说明
public long getTime()获取的是日起对象从1970年1月1日 00:00:00 到现在的毫秒值
public void setTime( long time )设置时间,给的是毫秒值
        //创建日起对象
        Date d = new Date();
        System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年"); // 输出结果为 51.93270544111491年

        long time = System.currentTimeMillis(); //系统现在的时间
        d.setTime(time);
        System.out.println(d); // 输出结果为 Wed Nov 24 18:29:58 GMT+08:00 2021

2. 日期类 SimpleDateFormat 类概述

image-20211124183518207

image-20211124183834699

1. SimpleDateFormat 的构造方法
方法名说明
public SimpleDateFormat()构造一个 SimpleDateFormat ,使用默认模式和日期格式
public SimpleDateFormat( String pattern)构造一个SimpleDateFormat 使用给定的模式和默认的日期格式
  1. 格式化(从 Date 到 String )

    public final String format( Date date ):将日期格式化成日期 / 时间字符串

  2. 解析(从 String 到 Date )

    public Date parse( String source):从给定字符串开始解析文本以生成日期

        //格式化从Date到String
        Date d=new Date();
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s = sdf.format(d);
        System.out.println(s);  // 输出结果为 2021年11月24日 18:53:38

        //解析从String到Date
        String ss="2021年10月29日 18时18分18秒";
        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        Date dd=sdf2.parse(ss);
        System.out.println(dd);  // 输出结果为 Fri Oct 29 18:18:18 GMT+08:00 2021

3.日期工具类的练习案例

定义一个日期工具类,包含两个方法:1.把日期转换为指定格式的字符串;2.把字符串解析为指定格式的日期,然后定义一个测试类

package Date;

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

public class DateUtils {
    private DateUtils(){}

    public static String dateToString(Date date,String format){
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        String s=sdf.format(date);
        return s;
    }

    public static Date stringToDate(String s,String format) throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        Date d=sdf.parse(s);
        return d;
    }
}

测试类

package Date;

import java.text.ParseException;
import java.util.Date;

public class DateUtilsDemo {
    public static void main(String[] args) throws ParseException {
        Date d=new Date();
        String s1= DateUtils.dateToString(d,"yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s1);  // 输出结果为  2021年11月24日 19:05:58

        String s2=DateUtils.dateToString(d,"yyyy年MM月dd日");
        System.out.println(s2);  // 输出结果为  2021年11月24日

        String s3=DateUtils.dateToString(d,"HH:mm:ss");
        System.out.println(s3);  // 输出结果为  19:05:58

        String s4=DateUtils.dateToString(d,"ss");
        System.out.println(s4);  // 输出结果为  58

        String ss="2021-10-29 19:00:00";
        Date s=DateUtils.stringToDate(ss,"yyyy-MM-dd HH:mm:ss");
        System.out.println(s);  // 输出结果为  Fri Oct 29 19:00:00 GMT+08:00 2021
    }
}

4. Calendar 类概述

image-20211124191006115
      Calendar c=Calendar.getInstance();
      System.out.println(c);
      //输出结果为  java.util.GregorianCalendar[time=1637752371771,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2021,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=4,DAY_OF_MONTH=24,DAY_OF_YEAR=328,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=7,HOUR_OF_DAY=19,MINUTE=12,SECOND=51,MILLISECOND=771,ZONE_OFFSET=28800000,DST_OFFSET=0]
        
      //使用 public int get(int field) 方法
      System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日");
      //输出结果为  2021年11月24日

Calendar 的常用方法

方法名说明
public int get( int field )返回给定日历字段的值
public abstract void add( int field , int amount )根据日历的规则,将指定的时间量添加或减去给定的日历字段
public final void set( int year , int month , int date )设置当前日历的年月日
 Calendar c=Calendar.getInstance();
 System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日");
 //输出结果为  2021年11月24日
      Calendar c=Calendar.getInstance();

      c.add(Calendar.YEAR,10);
      c.add(Calendar.DATE,-10);
      System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日");
      // 输出结果为  2031年11月15日
      c.set(2021,9,29);
      System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日");
      // 输出结果为  2021年10月29日

练习案例

二月天:输入任意一年,输出这一年的二月有多少天

package Calendar;

import java.util.Calendar;
import java.util.Scanner;

public class Calendar4 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int year =sc.nextInt();
        Calendar c=Calendar.getInstance();
        c.set(year,2,1);
        c.add(Calendar.DATE,-1);
        System.out.println(year+"年"+"2月有"+c.get(Calendar.DATE)+"天");
        // 输入 2021  输出结果为  2021年2月有28天
    }
}

标签:11,String,28,System,println,2021,Date,Calendar,public
来源: https://blog.csdn.net/m0_59564754/article/details/121596450

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有