Java常用类:时间处理示例代码

1. 测试Data的常用用法

		Date  d = new Date(2000);
		System.out.println(d); //Thu Jan 01 08:00:02 CST 1970
		System.out.println(d.getTime()); //2000

		//当前时间戳
		Date d2 = new Date();
		System.out.println(d2.getTime()); //1573635097557

		//判断d2是否在d之后
		System.out.println(d2.after(d));//true


		//以后遇到日期处理:使用尽量使用Canlendar日期类
		Date d3 = new Date(2020-1900,3,10);		//2020年4月10日
		System.out.println(d3); //		System.out.println(d3); 

2.测试时间对象和字符串之间的互相转换

	
		//把时间对象按照“格式字符串指定的格式”转成相应的字符串
		DateFormat  df  = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss");
		String str  =  df.format(new Date(4000000));
		System.out.println(str);//1970-01-01  09:06:40

		//把字符串按照“格式字符串指定的格式”转成相应的时间对象
		DateFormat  df2 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
		Date  date = df2.parse("1983年5月10日 10时45分59秒");
		System.out.println(date);//Tue May 10 10:45:59 CST 1983

		//测试其他的格式字符。比如:利用D,获得本时间对象是所处年份的第几天。
		DateFormat  df3  = new SimpleDateFormat("D");
		String str3  =  df3.format(new Date());
		System.out.println(str3);//317

3. 测试日期类的使用

	public static void main(String[] args) {
		//获得日期的相关元素
		Calendar calendar = new GregorianCalendar(2999,10,9,22,10,50);
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);
		int  day = calendar.get(Calendar.DATE);		//也可以使用:DAY_OF_MONTH。
		int weekday = calendar.get(Calendar.DAY_OF_WEEK);	//星期几。 1-7.  1:星期日,2星期一,。。。7是星期六。
		System.out.println(year) ;//2999
		System.out.println(month) ;	//0-11表示对应的月份。0是1月,1月是2月.....11是12月。此处输出10
		System.out.println(weekday);//7
		System.out.println(day);//9

		//设置日期的相关元素
		Calendar c2 = new GregorianCalendar();
		c2.set(Calendar.YEAR, 8012);
		System.out.println(c2);

		//日期的计算
		Calendar c3 = new GregorianCalendar();
		c3.add(Calendar.YEAR, -100);
		System.out.println(c3) ;

		//日期对象和时间对象的转化
		Date  d4 =  c3.getTime();
		Calendar c4 = new GregorianCalendar();
		c4.setTime(new Date());

		printCalendar(c4);//2019年11月13日 5时7分39秒   周3
	}


	 static  void  printCalendar(Calendar  c){
		//打印:1918年10月10日 11:23:45 周三
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;   //0-11
		int  date = c.get(Calendar.DAY_OF_MONTH);
		int  dayweek  = c.get(Calendar.DAY_OF_WEEK)-1;    //1-7.1周日,2周1,3周2....
		String dayweek2 = dayweek==0?"日":dayweek+"";

		int hour = c.get(Calendar.HOUR);
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);

		System.out.println(year+"年"+month+"月"+date+"日 "+hour+"时"+minute+"分"+second+"秒"
				+"   周"+dayweek2);

	}


4. 定义一个可视化日历


public class TestCalendar3 {

	public static void main(String[] args) throws ParseException {
		System.out.println("请输入日期(格式:2020-9-10):");
		Scanner  scanner  =  new Scanner(System.in);
		String  str = scanner.nextLine();

		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		Date date = df.parse(str);
		Calendar  c = new GregorianCalendar();
		c.setTime(date);

		int  day = c.get(Calendar.DAY_OF_MONTH);
		int days = c.getActualMaximum(Calendar.DATE);

		System.out.println("日\t一\t二\t三\t四\t五\t六");


		c.set(Calendar.DAY_OF_MONTH, 1);

		for(int i=0;i<c.get(Calendar.DAY_OF_WEEK)-1;i++){
			System.out.print("\t");
		}

		for(int i=1;i<=days;i++){
			if(day == c.get(Calendar.DAY_OF_MONTH)){
				System.out.print(c.get(Calendar.DAY_OF_MONTH)+"*\t");
			}else{
				System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\t");
			}

			if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){
				System.out.println();   	//换行
			}

			c.add(Calendar.DAY_OF_MONTH, 1);

		}

	}

}

在这里插入图片描述

发布了100 篇原创文章 · 获赞 29 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/s_zero/article/details/103052489