Java日期和日历示例

日历

本教程向您展示如何使用java.util.Datejava.util.Calendar

1. Java日期示例

很少有使用Date API的示例。

示例1.1 –将日期转换为字符串。

SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
	String date = sdf.format(new Date()); 
	System.out.println(date); //15/10/2013

示例1.2 –将字符串转换为日期。

SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
	String dateInString = "31-08-1982 10:20:56";
	Date date = sdf.parse(dateInString);
	System.out.println(date); //Tue Aug 31 10:20:56 SGT 1982

PS有关详细的日期和时间模式,请参考此– SimpleDateFormat JavaDoc

例1.3 –获取当前日期时间

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
	Date date = new Date();
	System.out.println(dateFormat.format(date)); //2013/10/15 16:16:39

示例1.4 –将日历转换为日期

Calendar calendar = Calendar.getInstance();
        Date date =  calendar.getTime();

2. Java日历示例

很少有可以使用Calendar API的示例。

例2.1 –获取当前日期时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");	
	Calendar calendar = new GregorianCalendar(2013,0,31);
	System.out.println(sdf.format(calendar.getTime()));

输出量

2013 Jan 31 00:00:00

例2.2 –简单的日历例子

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");	
	Calendar calendar = new GregorianCalendar(2013,1,28,13,24,56);

	int year       = calendar.get(Calendar.YEAR);
	int month      = calendar.get(Calendar.MONTH); // Jan = 0, dec = 11
	int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); 
	int dayOfWeek  = calendar.get(Calendar.DAY_OF_WEEK);
	int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
	int weekOfMonth= calendar.get(Calendar.WEEK_OF_MONTH);

	int hour       = calendar.get(Calendar.HOUR);        // 12 hour clock
	int hourOfDay  = calendar.get(Calendar.HOUR_OF_DAY); // 24 hour clock
	int minute     = calendar.get(Calendar.MINUTE);
	int second     = calendar.get(Calendar.SECOND);
	int millisecond= calendar.get(Calendar.MILLISECOND);
		
	System.out.println(sdf.format(calendar.getTime()));
		
	System.out.println("year \t\t: " + year);
	System.out.println("month \t\t: " + month);
	System.out.println("dayOfMonth \t: " + dayOfMonth);
	System.out.println("dayOfWeek \t: " + dayOfWeek);
	System.out.println("weekOfYear \t: " + weekOfYear);
	System.out.println("weekOfMonth \t: " + weekOfMonth);
		
	System.out.println("hour \t\t: " + hour);
	System.out.println("hourOfDay \t: " + hourOfDay);
	System.out.println("minute \t\t: " + minute);
	System.out.println("second \t\t: " + second);
	System.out.println("millisecond \t: " + millisecond);

输出量

2013 Feb 28 13:24:56
year 		: 2013
month 		: 1
dayOfMonth 	: 28
dayOfWeek 	: 5
weekOfYear 	: 9
weekOfMonth     : 5
hour 		: 1
hourOfDay 	: 13
minute 		: 24
second 		: 56
millisecond     : 0

示例2.3 –手动设置日期。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");	
		
	Calendar calendar = new GregorianCalendar(2013,1,28,13,24,56);	
	System.out.println("#1. " + sdf.format(calendar.getTime()));

	//update a date
	calendar.set(Calendar.YEAR, 2014);
	calendar.set(Calendar.MONTH, 11);
	calendar.set(Calendar.MINUTE, 33);
		
	System.out.println("#2. " + sdf.format(calendar.getTime()));

输出量

#1. 2013 Feb 28 13:24:56
#2. 2014 Dec 28 13:33:56

示例2.4 –从日期中添加或减去。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd");	
		
	Calendar calendar = new GregorianCalendar(2013,10,28);	
	System.out.println("Date : " + sdf.format(calendar.getTime()));

	//add one month
	calendar.add(Calendar.MONTH, 1);
	System.out.println("Date : " + sdf.format(calendar.getTime()));
		
	//subtract 10 days
	calendar.add(Calendar.DAY_OF_MONTH, -10);
	System.out.println("Date : " + sdf.format(calendar.getTime()));

输出量

Date : 2013 Nov 28
Date : 2013 Dec 28
Date : 2013 Dec 18

示例2.5 –将日期转换为日历。

SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
	String dateInString = "22-01-2015 10:20:56";
	Date date = sdf.parse(dateInString);

        Calendar calendar = Calendar.getInstance();
	calendar.setTime(date);

参考文献

  1. 日历JavaDoc
  2. 日期JavaDoc
  3. Java –将字符串转换为日期
  4. 如何在Java中比较日期

翻译自: https://mkyong.com/java/java-date-and-calendar-examples/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值