Java---日期处理(Date、Calendar、DateFormat)

71 篇文章 0 订阅
35 篇文章 0 订阅

Java中玩转日期总共就用到3个类:

    java.util.Date日期类:

            用于表示或存储精确值(long型值),通常用于进行精确值的获取或计算,用计算后的精确值创建一个新的日期对象,        精确值=当前日期时间距离“1970年1月1日0时0分0秒0毫秒”所经过的毫秒值

    java.util.Calendar日历类:

            提供了很多日期时间方面的操作运算功能,
            如:获取年月日、时分秒、星期几等,也可进行以这些为单位的运算

    java.text.DateFormat(其子类SimpleDateFormat)日期格式化类:

             用于“日期文本串”和“日期对象”之间的转换,

            如 "字符串格式的日期"-->日期对象 ,日期对象-->“指定格式的字符串”

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

import org.junit.Test;

public class DateDemo {
	
	@Test
	public void dateDemo(){
		Date d1 = new Date();//当前日期时间
		System.out.println(d1.toString());
		long lg = d1.getTime();
		System.out.println("lg1:"+lg);
		
		//一天以后(精确值计算)
		lg = lg + 24*60*60*1000L; //注意,常量值后面要加L,否则bug
		System.out.println("lg2:"+lg);
		
		//把计算后的精确值重新封装成一个Date对象
		Date d2 = new Date(lg);
		System.out.println(d2.toString());
		
		//有关Date中的获取年月日时分秒等功能全部过时,以后采用Calender来实现
		int y = d2.getYear(); //返回值为: 日期的年份-1900
		System.out.println("y:"+(y+1900));
		
		//计算程序执行时间:
		long t1 = new Date().getTime();//程序开始位置
		int s=0;
		for(int i=0;i<1000000;i++){
			s++;
			s*=12345;
		}
		long t2 = new Date().getTime();//程序结束位置
		System.out.println("耗时(毫秒):"+(t2-t1));
	}
	
	@Test
	public void calenderDemo(){
		//日历对象要用工厂方法来创建对象
		Calendar c = Calendar.getInstance();
		//获取/设置日期中的年月日时分秒等字段值,都是用get(int field)/set(int field)方法
		int year = c.get(Calendar.YEAR);
		System.out.println("year:"+year);
		int hour1 = c.get(Calendar.HOUR);//12小时格式
		System.out.println("Hour1:"+hour1);
		int hour2 = c.get(Calendar.HOUR_OF_DAY);//24小时格式
		System.out.println("Hour1:"+hour2);
		
		int day1 = c.get(Calendar.DAY_OF_YEAR);//该年的第几天
		int day2 = c.get(Calendar.DAY_OF_MONTH);//该月的第几天
		int day3 = c.get(Calendar.DAY_OF_WEEK) -1;//星期几--1为Sunday,2为Monday,...
		int day4 = c.get(Calendar.DAY_OF_WEEK_IN_MONTH);//该月的第几周
		System.out.println(day1+","+day2+","+day3+","+day4);
		
		int month = c.get(Calendar.MONTH)+1; //一月为0,二月为1
		System.out.println("Month:"+month);
		
		c.set(Calendar.YEAR, 2020);
		//可以进行以年月日时分秒等为单位的加减运算
		c.add(Calendar.HOUR, -4800);
		System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月");
		
		
		//Calendar与Date的相互转换
		//Calendar-->Date
		Date d = c.getTime();
		System.out.println(d);
		//Date-->Calendar
		Calendar c2 = Calendar.getInstance();
		c2.setTime( new Date() );
		System.out.println( c2.get(Calendar.MINUTE) +"分");
		
	}
	
	
	@Test
	public void dateFormatDemo(){
		//把Date与字符串之间的转换
		
		//把Date对象-->字符串   ----格式化
		//DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS");
		DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS");
		Date d = new Date();
		String str = df.format(d);//格式化
		System.out.println(str);
		
		//把字符串-->Date对象    -----解析
		String ss = "3.25.2018 19:57";
		SimpleDateFormat sdf = new SimpleDateFormat("MM.dd.yyyy HH:mm");
		try {
			Date dd = sdf.parse(ss);//解析
			String s2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分").format(dd);
			System.out.println(s2);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值