能否幫助我在Java中顯示時差?我已經做到了,但是有一些代碼不應該被重寫。使用Java編寫效率更高效
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Time {
public static void main(String[] args) throws Exception {
Date dt = new Date();
DateFormat[] dtformat = new DateFormat[6];
dtformat[0] = DateFormat.getInstance();
dtformat[1] = DateFormat.getDateInstance();
dtformat[2] = DateFormat.getDateInstance(DateFormat.MEDIUM);
dtformat[3] = DateFormat.getDateInstance(DateFormat.FULL);
dtformat[4] = DateFormat.getDateInstance(DateFormat.LONG);
dtformat[5] = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println("Today :");
for(DateFormat dateform : dtformat)
System.out.println(dateform.format(dt));
String str = "May 21 1980";
SimpleDateFormat df = new SimpleDateFormat("MMM dd yyyy");
Date date = df.parse(str);
long epoch = date.getTime();
Date dl = new Date(epoch);
DateFormat[] dlformat = new DateFormat[6];
dlformat[0] = DateFormat.getInstance();
dlformat[1] = DateFormat.getDateInstance();
dlformat[2] = DateFormat.getDateInstance(DateFormat.MEDIUM);
dlformat[3] = DateFormat.getDateInstance(DateFormat.FULL);
dlformat[4] = DateFormat.getDateInstance(DateFormat.LONG);
dlformat[5] = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println("\nDate of Birth :");
for(DateFormat dateform : dlformat)
System.out.println(dateform.format(dl));
System.out.println("\nDifference Days: " + Diff(dl,dt) + " hari");
}
public static long Diff(Date dl, Date dt) {
long diffdays = dt.getTime() - dl.getTime();
long days = diffdays/(24 * 60 * 60 * 1000);
return days;
}
}
輸出應該是一樣的,如: 17年9月24日下午11時31
2017年9月24日
2017年9月24日
週日,9月24日,2017
2017年9月24日
9/24/17
如果此代碼有效,請在[codereview.se]提問您的問題。 –
@AndyTurner爲什麼我們不能選擇CR作爲標記此問題時應該發佈此問題的替代網站? –
順便說一句,有沒有什麼特別的原因讓你仍然在爲長期過時的類「Date」而苦苦掙扎,而不是最簡單的SimpleDateFormat?我建議你把它們扔掉,並使用現代的'LocalDate'和'DateTimeFormatter.ofLocalizedDate()'。現代的API非常適合與之合作。 –