java - 日历不能正常工作

标签 java date calendar

我是一名 3 个月大的 Java 学生。对于我的一个模块,我试图将一周的第一天设置为星期二(这样真正的星期五现在应该在索引 3 处)但它没有显示预期的结果。

我正在通过扫描仪输入日期。 下面是相关的代码和输出:

 Calendar c= Calendar.getInstance();
    c.setFirstDayOfWeek(Calendar.TUESDAY);

    c.setTime(date);
    int dayOfWeek=c.get(Calendar.DAY_OF_WEEK);
    System.out.println(dayOfWeek);



Output:

Enter the date(dd/mm/yyyy):
03/07/2014
6

不知道我哪里错了。尝试了很多谷歌搜索,甚至设置了 minimalDAysOfFirstWeek 但没有任何效果。我想要的是 03/07/2014 显示为索引 3。如何实现?

最佳答案

我认为您误解了 setFirstDayOfWeek 的目的.

这不会改变 c.get(Calendar.DAY_OF_WEEK) 完全有效 - 它会改变调用 c.get(Calendar.WEEK_OF_MONTH)c.get(Calendar.WEEK_OF_YEAR),根据文档:

When setting or getting the WEEK_OF_MONTH or WEEK_OF_YEAR fields, Calendar must determine the first week of the month or year as a reference point. The first week of a month or year is defined as the earliest seven day period beginning on getFirstDayOfWeek() and containing at least getMinimalDaysInFirstWeek() days of that month or year.

换句话说,星期日始终是星期日...但是 6 月 10 日星期日是否与 6 月 11 日星期一在同一周取决于一周的第一天。

关于java - 日历不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554241/

相关文章:

date - HIVE - 按日期功能分组

java - 增加 iPhone 应用程序上的应用程序徽章数量

java - 计数器无法结束循环

javascript从给定日期开始按月递增日期

jquery-ui - 在 JQuery UI 日历中仅显示年份

设置为零秒的 java.util.Calendar 通过 jdbc 持续到 mysql 1 秒

calendar - 如何在 Ada 中获得自 unix epoch 以来的秒数?

java - 如何指定单个测试由 play framework 的 "test-only"命令运行

java - p :inputText in p:inplace when DB constraint validation failed 的重置值

php - 正则表达式从任何字符串中获取日期 yyyy-mm-dd