該answer by Shashank Kadne是正確的。
喬達時間
僅供參考,這項工作更簡單,使用Joda-Time 2.3庫乾淨。
喬達時使用的東西,如理智爲基礎的一個計數:
- 月的年中
月= 1,二月= 2,依此類推。
- 日的星期 -
星期一= 1,星期日= 7(標準ISO 8601周)
喬達時間DateTime
對象知道自己的時區,不同java.util.Date
對象。
Joda-Time利用指定的Locale
對象呈現本地化的字符串。
示例代碼
// Specify a time zone rather than rely on default.
DateTimeZone timeZone = DateTimeZone.forID("Europe/Paris");
int year = 2014;
int month = 1; // Sensible one-based counting. January = 1, February = 2, …
int dayOfMonth = 2;
DateTime dateTime = new DateTime(year, month, dayOfMonth, 0, 0, 0, timeZone);
// Day-of-week info.
int dayOfWeekNumber = dateTime.getDayOfWeek(); // Standard week (ISO 8601). Monday = 1, Sunday = 7.
DateTime.Property dayOfWeekProperty = dateTime.dayOfWeek();
String dayOfWeekName_Short = dayOfWeekProperty.getAsShortText(Locale.FRANCE);
String dayOfWeekName_Long = dayOfWeekProperty.getAsText(Locale.FRANCE);
轉儲到控制檯...
System.out.println("dateTime: " + dateTime);
System.out.println("dayOfWeekNumber: " + dayOfWeekNumber);
System.out.println("dayOfWeekName_Short: " + dayOfWeekName_Short);
System.out.println("dayOfWeekName_Long: " + dayOfWeekName_Long);
運行時...
dateTime: 2014-01-02T00:00:00.000+01:00
dayOfWeekNumber: 4
dayOfWeekName_Short: jeu.
dayOfWeekName_Long: jeudi
不受時間&時區
如果TRU只想要沒有任何時間或時區的日期,然後編寫類似的代碼,但是需要LocalDate類。
可能重複的[如何通過傳遞特定日期來確定星期幾?](http://stackoverflow.com/questions/5270272/how-to-determine-day-of-week-by-passing-specific-日期) –
月份基於零。 http://docs.oracle.com/javase/7/docs/api/java/util/GregorianCalendar.html#GregorianCalendar%28int,%20int,%20int%29 –