내 방법은 다음과 같습니다방법 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/)는 너무 잘 작동합니다. –