JAVA的时间类使用(通过编写一个日历学习)

JAVA的时间类使用(通过编写一个日历学习)

今天是小贤的第一篇文章,希望自己能够坚持,为自己鼓鼓掌
时间类的使用是经常用到的,为此小贤通过学习,写了一个日记的小程序来体会时间类的用法。

Date
(1)创建一个代表系统当前日期的Date对象

Date d = new Date();

(2)创建一个代表1970年1月1日 00:00:00加上输入参数的毫秒数的Date对象

  long second=1000;
  Date d = new Date(second);

(3)创建一个我们指定的时间的Date对象:
使用带参数的构造方法Date(int year, int month, int day) ,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。

//创建一个代表2014年6月12号的Date对象
Date d1 = new Date(2014-1900, 6-1, 12); (注意参数的设置)
(小提示:该方法已经被废弃replaced by <code>Calendar.set(year + 1900, month, date)</code>
 * or <code>GregorianCalendar(year + 1900, month, date)</code>.)
  Calendar calendar = new GregorianCalendar();
    calendar.set(2020,2-1,2);

(4)正确获得一个date对象所包含的信息
如:
Date d2 = new Date(2014-1900, 6-1, 12);

    //获得年份 (注意年份要加上1900,这样才是日期对象d2所代表的年份)
    int year = d2.getYear() + 1900;
    
    //获得月份  (注意月份要加1,这样才是日期对象d2所代表的月份)
    int month = d2.getMonth() + 1;
    
    //获得日期
    int date = d2.getDate();

    //获得小时
    int hour = d2.getHours();//不设置默认为0

    //获得分钟
    int minute = d2.getMinutes();

    //获得秒
    int second = d2.getSeconds();

   //获得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次类推了)
   int day = d2.getDay();

Calendar
(1)获取当前时间的Calendar

Calendar calendar =Calendar.getInstance();

或者

Date date = new Date();
Calendar calendar = new GregorianCalendar();
 calendar.setTime(date);

(2)获取当前日期的日 和 设置当前日期的日

int day = calendar.get(Calendar.DAY_OF_MONTH);
calendar.set(Calendar.DAY_OF_MONTH,1);

(3)将当前日期的日加一日

 calendar.add(Calendar.DAY_OF_MONTH,1);

(4)Calendar类的常量

Calendar.YEAR——年份
Calendar.MONTH——月份
Calendar.DATE——日期
Calendar.DAY_OF_MONTH——日期,和上面的字段意义相同
Calendar.HOUR——12小时制的小时
Calendar.HOUR_OF_DAY——24小时制的小时
Calendar.MINUTE——分钟
Calendar.SECOND——秒
Calendar.DAY_OF_WEEK——星期几

(5)Calendar还提供了很多方法,就不不一一说明了
boolean isLeapYear(int year) 确定给定的年份是否为闰年
compareTo() 比较日期的方法
DateFormat
(1)将指定格式的日期字符串转为日期类(常用日期格式 yyyy-MM-dd hh:mm:ss)

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String loveDay = "2020-02-02"; 
Date love = df.parse(loveDay );

(2)将日期类转为字符串日期

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date love = df.parse(2020-1900,2-1,2);
String loveDay = df.format(love);
package Date;

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


public class DateTest {

    public static void main(String[] args) {

        System.out.println("请输入日期:(2020-02-14)");
        Scanner scanner = new Scanner(System.in);
        String src = scanner.nextLine();
        String temp = src;
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = df.parse(temp);
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date);
            int day = calendar.get(Calendar.DAY_OF_MONTH);
            calendar.set(Calendar.DAY_OF_MONTH,1);
            System.out.println("日\t一\t二\t三\t四\t五\t六");
            for (int i=1;i<calendar.get(Calendar.DAY_OF_WEEK);i++){
                System.out.print("\t");
            }
            int maxDate = calendar.getActualMaximum(Calendar.DATE);

            for (int i=1;i<= maxDate;i++){

                if(day == i){
                    System.out.print(calendar.get(Calendar.DAY_OF_MONTH)+"*\t");
                }else {
                    System.out.print(calendar.get(Calendar.DAY_OF_MONTH)+"\t");
                }

                if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){
                    System.out.println();
                }
                calendar.add(Calendar.DAY_OF_MONTH,1);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

在这里插入图片描述
蟹蟹大家花宝贵的时间来浏览小贤的文章,在往后的学习中如果小编用上其他关于日期类的方法,小贤会补充上去。
同时也希望大家能说说你们常用的一些日期类方法,让小贤学习学习。
蟹蟹大家来说说有哪些地方写错了,好让小贤即使调整改正。

也许 你曾被生活辜负 但沿着善良 总会闻到花香

发布了1 篇原创文章 · 获赞 9 · 访问量 65

猜你喜欢

转载自blog.csdn.net/qq_24280125/article/details/104708536