我的方法是:如何使用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/)非常適合使用。 –