以前也经常用date去截取,但是病史所有场景都适合,或者说效率满足不了,或者说拼接格外麻烦。能用java本省的的方法去实现其实更爽。因为中西方的文化的差异有时候在简单的方法上我们不得不去加一些其他的去计算,谁让java是西方的语言,我也想用国产的开发语言,但不知道这辈子能不能看到了。上代码:
SimpleDateFormat simdf = new SimpleDateFormat("MM月dd日");
Calendar cal = Calendar.getInstance();
System.out.println("现在时间:"+simdf.format(cal.getTime()));
//分别获取年、月、日
System.out.println("年:"+cal.get(cal.YEAR));
System.out.println("月:"+(cal.get(cal.MONTH)+1));//老外把一月份整成了0,翻译成中国月份要加1
System.out.println("日:"+cal.get(cal.DATE));
cal.set(cal.DAY_OF_WEEK, cal.MONDAY);
String weekhand = simdf.format(cal.getTime());
System.out.println("当前时间所在周周一日期:"+weekhand);
//cal.set(cal.DAY_OF_WEEK, cal.SUNDAY);这个不符合中国人的时间观,老外把上周周日定为一周的开始。
cal.set(Calendar.DATE, cal.get(cal.DATE) + 6);
String weeklast = simdf.format(cal.getTime());
System.out.println("当前时间所在周周日日期:"+weeklast);
运行输出:
现在时间:07月06日
年:2017
月:7
日:6
当前时间所在周周一日期:07月03日
当前时间所在周周日日期:07月09日