Java实战常用操作(一)五分钟带你玩转时间类型
【摘要】
获取时间
关于date 有以下获取时间的方式:
java.util.Date date= new java.util.Date();
System.out.println(date...
获取时间
关于date 有以下获取时间的方式:
java.util.Date date= new java.util.Date();
System.out.println(date);
java.util.Calendar date4 = java.util.Calendar.getInstance();
System.out.println(date4);//date4是对象,可以用date.得到时间方法
//sql语句用
java.sql.Date date1 = new java.sql.Date(new java.util.Date().getTime());
System.out.println(date1);
java.sql.Timestamp date2 = new java.sql.Timestamp(new java.util.Date().getTime());
System.out.println(date2);
java.sql.Time date3 = new java.sql.Time(new java.util.Date().getTime());
System.out.println(date3);
总结:使用Calendar 获取年,时,分,秒等更简单。但是获取日期是重0开始的。
Date的格式化
格式化使用SimpleDateFormat
// Date转String
java.text.SimpleDateFormat f = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("Date转String:"+f.format(date4.getTime()));
// String转Date
Date date5 = null;
try {
date5 = f.parse("2018-01-22 08:31:28");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.print("String转Date:"+date5);
注意:
SimpleDateFormat 不是线程安全的。
解决方法:
1.创建新实例。
2.使用synchronized关键字。
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static String formatDate(Date date)throws ParseException{
synchronized(sdf){
return sdf.format(date);
}
}
3.使用ThreadLocal。
计算差值
计算差值有两种方式
1.获获取毫秒数,然后换成天数。
Long date6 = date.getTime() - date5.getTime();
System.out.println(date6 /(1000 * 24 * 60 * 60));
2.用Calendar 类获取年月日进行计算,先获得时分秒。然后两个日期按照逻辑计算,获得的时分秒为int类型。
java.util.Calendar date7 = java.util.Calendar.getInstance();
java.util.Calendar date8 = java.util.Calendar.getInstance();
System.out.println(date7.get(Calendar.YEAR));
System.out.println(date7.get(Calendar.MONTH));
System.out.println(date7.get(Calendar.DAY_OF_MONTH));
System.out.println(date7.get(Calendar.HOUR));
//可以把其他时间类型转为Calendar 类型
date8.setTime(date5);
System.out.println(date8.get(Calendar.MONTH));
3.计算某日期X年X月X日后的日期。
date7.add(Calendar.DAY_OF_MONTH, 20);
System.out.println(date7.getTime());
文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。
原文链接:baocl.blog.csdn.net/article/details/82861743
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)