Java中的日期时间介绍
2016-07-17 17:03
453 查看
public class TestDate { public static void main(String[] args){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); // 1.得到当前时间 System.out.println(sdf.format(calendar.getTime())); // 2.得到上一个月的月初 calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); Date strDateFromDefault = calendar.getTime(); String monthFirstDay = sdf.format(strDateFromDefault.getTime()); System.out.println(monthFirstDay); // 3.得到上一个月的月末 calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); Date strDateToDefault = calendar.getTime(); String monthLastDay = sdf.format(strDateToDefault.getTime()); System.out.println(sdf.format(strDateToDefault.getTime())); // 4.ͨ通过某个月的第一天得到对应这个月的最后一天【日期的截取】 String monthBeginDay = "2015-11-01"; String month = monthBeginDay.substring(5, 7); int lastDay = (month.indexOf(0) == 0) ? month.indexOf(1) : Integer.parseInt(month); calendar.set(Integer.parseInt(monthBeginDay.substring(0, 4)), lastDay-1, 1); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); Date strDate = calendar.getTime(); monthLastDay = sdf.format(strDate.getTime()); System.out.println(monthLastDay); // 5.判断某一个日期是否符合当前格式,用正则表达式 String monthBeginDay = "2015-07"; if(!monthBeginDay.matches("^[0-9]{4,4}-[0-1][1-9]$")){ System.out.println("格式不正确ȷ "); }else { System.out.println("格式正确"); } // 6.判断某一个日期是否符合当前格式,用正则表达式 String eL = "[0-9]{4}-[0-1][0-9]"; Pattern p = Pattern.compile(eL); Matcher m = p.matcher("2015-03000"); boolean dateFlag = m.matches(); if (!dateFlag) { System.out.println("格式错误"); } else{ System.out.println("格式正确"); } //7.得到某个月的月初和月末 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); String monthFirstDay = sdf.format(calendar.getTime()); System.out.println(monthFirstDay); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); String monthLastDay = sdf.format(calendar.getTime()); System.out.println(monthLastDay); //8.增加月份或者天数后的日期 Calendar calendar = Calendar.getInstance(); calendar.setTime(calendar.getTime());//这里的时间必须是Date型 calendar.add(Calendar.MONTH, 1); System.out.println("增加月份后的日期:"+calendar.getTime()); Calendar calendar = Calendar.getInstance(); calendar.setTime(calendar.getTime()); calendar.add(Calendar.DAY_OF_MONTH, 100); System.out.println("增加天数后的日期:"+calendar.getTime()); // 9.获取当前时间对应的本周星期一和星期天的日期 Calendar cal =Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); cal.setTime(cal.getTime()); cal.add(Calendar.DAY_OF_WEEK, 2); System.out.println("增加月份后的日期:"+df.format(cal.getTime())); //判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天 if(1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //获取本周一的日期 System.out.println("本周星期一的日期:"+df.format(cal.getTime())); //这种输出的是上个星期周日的日期,因为老外那边把周日当成第一天 cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); //增加一个星期,才是我们中国人理解的本周日的日期 cal.add(Calendar.WEEK_OF_YEAR, 1); System.out.println("本周星期天的日期:"+df.format(cal.getTime())); //10.获取当前时间对应的下周星期一和星期天的日期 Calendar cal =Calendar.getInstance(); //SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); DateTool df = new DateTool(); cal.setTime(cal.getTime()); cal.add(Calendar.DAY_OF_WEEK, 5); System.out.println("增加月份后的日期:"+df.format(cal.getTime())); //判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天 System.out.println(dayWeek); if (dayWeek != 1) { cal.add(Calendar.DAY_OF_MONTH, 9 - dayWeek); } cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //获取本周一的日期 System.out.println("下周星期一的日期:"+df.format(cal.getTime())); //这种输出的是上个星期周日的日期,因为老外那边把周日当成第一天 cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); //增加一个星期,才是我们中国人理解的本周日的日期 cal.add(Calendar.WEEK_OF_YEAR, 1); System.out.println("下周星期天的日期:"+df.format(cal.getTime())); String releaseDate = df.format(cal.getTime()); String releaseDateNextSundaySql = "TO_DATE('"+releaseDate.substring(0, 12)+"', 'Month dd, YYYY')"; System.out.println("下周星期天的日期:"+releaseDateNextSundaySql); //11.将date型时间的时分秒置为0 Calendar calendar =Calendar.getInstance(); calendar.setTime(calendar.getTime()); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date newShowDate = calendar.getTime(); System.out.println(newShowDate); //12.获取特定格式的日期 Calendar calendar =Calendar.getInstance(); DateTool dt = new DateTool(); String showDate = dt.format("MMM d, yyyy", calendar.getTime()); System.out.println(showDate); Date date = new Date(); DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //7/14/16 6:18 PM System.out.println(shortDateFormat.format(date)); //Jue 14, 2016 6:18:20 PM System.out.println(mediumDateFormat.format(date)); //Jue 14, 2016 6:18:20 PM CST System.out.println(longDateFormat.format(date)); //Monday, Jue 14, 2016 6:18:20 PM CST System.out.println(fullDateFormat.format(date)); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树