我的方法是:如何使用SimpleDateFormat的
public String changeCurrentDate(Integer variant){
String currentTime = TestApp.getInstance().getDriver().findElement(By.id("common.HeaderComponent.mainLayout.serverTimeLabel")).getText();
String currentDate = currentTime.substring(0, 10);
System.out.println("currentDate " +currentDate);
String date = null;
DateFormat df = new SimpleDateFormat("dd/mm/yyyy");
try{
Date date3 = df.parse(currentDate);
df.format(date3);
System.out.println("date3 " +date3);
Date previousDate = DateUtils.addDays(date3, variant);
date = previousDate.toString();
return date;
}catch (Exception e){
}
return date;
}
注:currentTime的变量总是有一个像“18/12/2017” 我期待日期的结果DD值/ mm/yyyy格式。但它总是给这样的“Wed Jan 18 00:12:00 IST 2017”。
运行时间结果:
currentDate 18/12/2017
date3 Wed Jan 18 00:12:00 IST 2017
日期自理不在调用'df.format(date3)'时,在java中有格式;'此方法将返回一个由SimpleDateFormat格式化的String,但它根本不会改变有关'date3'的任何内容。所以调用格式而不做任何事情的返回值是毫无意义的。 –
你为什么认为'mm'代表月份? – Tom
我建议你不要使用过时的'Date'类,特别是避免出现臭名昭着的'SimpleDateFormat'类。 ['java.time',现代Java日期和时间API](https://docs.oracle.com/javase/tutorial/datetime/)非常适合使用。 –