java 代码 在获取当前的时间 加十年
通过一main 方法测试System.out.println(DateUtil.getYearAndMonth("2009-01-01",10));
输出 2019-01-01 Java 测试 --------------------编程问答-------------------- 2009+10 不就OK了? --------------------编程问答-------------------- 你要问什么 你自己不是已经实现了吗 --------------------编程问答--------------------
额,没有我只是把方法名定义出来了,方法没有实现。 --------------------编程问答--------------------
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
//c.set
Date data = c.getTime();
c.add(Calendar.YEAR, 10);
System.out.println(c.getTime());
}
自己把格式转换一下 修改一下就行了 --------------------编程问答--------------------
看楼上 --------------------编程问答-------------------- 楼上好厉害,这么难的问题,一下就解决楽 --------------------编程问答-------------------- 楼上的可以实现楼主的需求了 --------------------编程问答-------------------- --------------------编程问答-------------------- 闰年的2月29日咋处理。 --------------------编程问答--------------------
闰年的2月29日咋处理。
用正则表达式匹配,从1970-01-01开始往后2万天逐一测试日期有效性,包括闰年2月29日,都可以校验通过。
Java代码
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TempTest {
public static void main(String[] args) throws Exception {
Date date = new Date(0);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cale = Calendar.getInstance();
cale.setTime(date);
for (int i = 0; i < 20000; i++) {
if (!isValidDate(df.format(date))) {
System.out.println("校验失败:" + df.format(date));
}
cale.add(Calendar.DAY_OF_YEAR, 1);
}
System.out.println(df.format(cale.getTime()) + " End.");
}
/**
* 判断日期格式:yyyy-mm-dd
*
* @param sDate
* @return
*/
public static boolean isValidDate(String sDate) {
String datePattern1 = "\\d{4}-\\d{2}-\\d{2}";
String datePattern2 = "^((\\d{2}(([02468][048])|([13579][26]))"
+ "[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|"
+ "(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?"
+ "((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?("
+ "(((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?"
+ "((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
if ((sDate != null)) {
Pattern pattern = Pattern.compile(datePattern1);
Matcher match = pattern.matcher(sDate);
if (match.matches()) {
pattern = Pattern.compile(datePattern2);
match = pattern.matcher(sDate);
return match.matches();
} else {
return false;
}
}
return false;
}
}
补充:Java , Java EE