Java中的时间类 - Go语言中文社区

Java中的时间类


Date时间类

用long类型的变量用来表示时间,在计算机世界里,将1970年1月1日00:00:00定为基准时间
获取此时此刻的时间可以使用long now = System.currentTimeMillis();
获取电脑的时刻Date date = new Date(); System.out.println(date); (导入包时导入util里面的Date)
使用gettime方法获取时间的毫秒关系

DateFormat类和SimpleDateFormat类

SimpleDateFormat类是DateFormat类的实现类
DateFormat类的作用时将时间对象和指定格式的字符串之间进行转化

将时间对象转成相应的字符串

public static void main(String[] args) {
		//将时间对象按照格式字符串指定的格式转换成相应的字符串
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		//因为DateFormat是抽象类,不能被new只能使用实现类创建对象
		String string = dateFormat.format(new Date(2000));
		System.out.println(string);
	}

在这里插入图片描述

将字符串转成相应的时间

public static void main(String[] args) throws ParseException { //抛出异常
//将字符串按照格式字符串指定的格式转成相应的时间对象
		DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		Date date = dateFormat2.parse("2020-3-11 10:15:36");
		System.out.println(date);
	}

在这里插入图片描述

Calendar日历类

Calendar 类是一个抽象类,提供了关于日期计算的相关功能
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
月份是从0到11表示1到12月

获得日期

public static void main(String[] args) {
		Calendar calendar = new GregorianCalendar(2020,3,11,10,15,36);
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);
		int week = calendar.get(Calendar.DAY_OF_WEEK);//其中1代表星期天,2代表星期一,以此类推
		int date = calendar.get(calendar.DATE);
		System.out.println(year);
		System.out.println(month); //3对应月份为4月
		System.out.println(week);
		System.out.println(date);
		
	}

设置日期

		Calendar calendar2 = new GregorianCalendar();//如果什么都不传,则输出的当前的日期
		System.out.println(calendar2);
		
		Calendar calendar3 = new GregorianCalendar();
		calendar3.set(Calendar.YEAR,2022); //设置日期,将年份设置为2022年
		System.out.println(calendar3);

计算日期

		Calendar calendar4 = new GregorianCalendar();
		calendar4.add(Calendar.DATE, 520); //计算当前日期再过520天的信息,是哪年哪月哪日
		System.out.println(calendar4);
		Calendar calendar4 = new GregorianCalendar();
		calendar4.add(Calendar.DATE, -520); //计算当前日期之前520天的信息,是哪年哪月哪日
		System.out.println(calendar4);

日历类与时间类的转化

	public static void main(String[] args) {
		Calendar calendar4 = new GregorianCalendar();
		Date date2 = calendar4.getTime();
		Calendar calendar5 = new GregorianCalendar();
		calendar5.setTime(new Date());
		printCalender(calendar5);
	}
	public static void printCalender(Calendar calendar) { //封装一个方法用来将日历类转化为时间并按照给定的格式输出
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);
		int week = calendar.get(Calendar.DAY_OF_WEEK);
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		String day1 = day == 0?"日":day+""; //将数字转化为字符串
		int hour = calendar.get(Calendar.HOUR);
		int minute = calendar.get(Calendar.MINUTE);
		int second= calendar.get(Calendar.SECOND);
		System.out.println(year + "年" + month + "月" +  day1 + "日" + "周" + week + " " + hour + "时" + minute + "分" + second + "秒");
		
	}

在这里插入图片描述

可视化日历程序

package lu.study.o3;

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 Calender {
	public static void main(String[] args) throws ParseException {
		System.out.println("请输入格式为年-月-日:"); //输入一个字符串
		Scanner scanner = new Scanner(System.in);
		String string = scanner.nextLine(); //获取键盘中所输入的日期字符串
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); //格式化字符串
		Date date = dateFormat.parse(string);  //生成对应的时间对象
		Calendar calender = new GregorianCalendar(); 
		calender.setTime(date); //将对应的字符串转化为对应的日期类
		
		int day = calender.get(Calendar.DAY_OF_MONTH);//保存一下所输入的日期
		int days = calender.getActualMaximum(Calendar.DATE); //利用get方法查看本月一共多少天
		
		System.out.println("日t一t二t三t四t五t六");
		
		calender.set(Calendar.DAY_OF_MONTH, 1);//将当前日期置为1
		
		for (int i = 0; i < calender.get(Calendar.DAY_OF_WEEK) - 1; i++) {
			System.out.print("t");
		}
		
		for (int i = 1; i <= days; i++) { //循环打印日期
			if (day == calender.get(Calendar.DAY_OF_MONTH)) { //打印时判断当前打印的数是否等于输入的日期
				System.out.print(calender.get(Calendar.DAY_OF_MONTH)+ "*t");
			}else {
				System.out.print(calender.get(Calendar.DAY_OF_MONTH)+ "t");
			}
			//如果等于7时,进行换行操作
			if (calender.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
				System.out.println();//换行
			}
			calender.add(Calendar.DAY_OF_MONTH,1); //每打完一次就加1天
		}
		
	}
}

在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lu_lu_n/article/details/104803997
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢