java Date的例子

最近想总结一些java中使用Date的情况,在网上找到了一篇感觉不错的文章,感觉讲的非常好,就直接翻译过来了,原文:http://howtodoinjava.com/2015/10/26/java-date-examples/

在这篇文章中,列出了使用java date类的例子,这些Date类用例经常会用到,总结一下放在某个地方会节省很多时间

java Date 类的例子

把Date转为String
SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
String date = sdf.format(new Date());
System.out.println(date); //Prints 26/10/2015

可以参照 SimpleDateFormat 文档获取更多的细节,下边列出了你可能会用到的一些最常见的模式
y   = year   (yy or yyyy)
M   = month  (MM)
d   = day in month (dd)
h   = hour (0-12)  (hh)
H   = hour (0-23)  (HH)
m   = minute in hour (mm)
s   = seconds (ss)
S   = milliseconds (SSS)
z   = time zone  text        (e.g. Pacific Standard Time...)
Z   = time zone, time offset (e.g. -0800)

例如:
yyyy-MM-dd           	(2015-12-31)
dd-MM-YYYY           		(31-10-2015)
yyyy-MM-dd HH:mm:ss  		(2015-12-31 23:59:59)
HH:mm:ss.SSS         		(23:59.59.999)
yyyy-MM-dd HH:mm:ss.SSS   	(2015-12-31 23:59:59.999)
yyyy-MM-dd HH:mm:ss.SSS Z   (2015-12-31 23:59:59.999 +0100) 
String转为Date
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
String dateInString = "15-10-2015 10:20:56";
Date date = sdf.parse(dateInString);
System.out.println(date); //Prints Tue Oct 15 10:20:56 SGT 2015

在java8中,创建date对象更简单了
LocalDate dateOfBirth = LocalDate.of(2010, 01, 14);
获取当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); //2015/10/26 12:10:39

在java8中,你可以使用LocalDate
LocalDate today = LocalDate.now();
System.out.println("Today's Local date : " + today);
获取当前时间
LocalTime time = LocalTime.now();
System.out.println("local time now : " + time);
将日历转为日期
Calendar calendar = Calendar.getInstance();
Date date =  calendar.getTime();
比较两个日期
Date date1 = new Date();
Date date2 = new Date();
 
int comparison = date1.compareTo(date2);

两个日期的比较遵循Comparable接口的规则,意味着compareTo()方法返回:
1、一个比0大的整数,如果一个值比另一个值大的话
2、如果相同是一个0
3、一个比0小的整数,如果一个值比另一个值小的话
从java8开始,LocalDate类重写了equal方法
LocalDate today = LocalDate.now();
LocalDate date1 = LocalDate.of(2015, 10, 26);
if(date1.equals(today)){
    System.out.printf("Today %s and date1 %s are same date %n", today, date1);
}
获取年,月,日
获取年月日小时的方法不赞成使用,如果你需要获取和设置年月日等,你可以使用java.util.Calendar
Calendar calendar = new GregorianCalendar();
 
int year       = calendar.get(Calendar.YEAR);
int month      = calendar.get(Calendar.MONTH);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // Jan = 0, not 1
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);

在java8中你可以使用不同的方式获取
LocalDate today = LocalDate.now();
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值