最近想总结一些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();