Calendar now =Calendar.getInstance();//一周第一天是否为星期天

boolean isFirstSunday = (now.getFirstDayOfWeek() ==Calendar.SUNDAY);//获取周几

int weekDay =now.get(Calendar.DAY_OF_WEEK);//若一周第一天为星期天,则-1

if(isFirstSunday){

weekDay= weekDay - 1;if(weekDay == 0){

weekDay= 7;

}

}//打印周几

System.out.println(weekDay);//若当天为2014年10月13日(星期一),则打印输出:1//若当天为2014年10月17日(星期五),则打印输出:5//若当天为2014年10月19日(星期日),则打印输出:7

星期日为一周的第一天

SUN

MON

TUE

WED

THU

FRI

SAT

DAY_OF_WEEK返回值

1

2

3

4

5

6

7

星期一为一周的第一天

MON

TUE

WED

THU

FRI

SAT

SUN

DAY_OF_WEEK返回值

1

2

3

4

5

6

7

以下参考:

1. 在获取月份时,Calendar.MONTH + 1 的原因

Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。

2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因

Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。

有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。

看下表的返回值

星期日为一周的第一天

SUN

MON

TUE

WED

THU

FRI

SAT

DAY_OF_WEEK返回值

1

2

3

4

5

6

7

星期一为一周的第一天

MON

TUE

WED

THU

FRI

SAT

SUN

DAY_OF_WEEK返回值

1

2

3

4

5

6

7

所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”

Java中设置不同地区的输出可以使用 Locale.setDefault(Locale.地区名) 来实现。

System.out.println(calendar.get(Calendar.DAY_OF_WEEK));

返回的是周几,而不是一周的第几天

可以这样设置,星期第一天是星期几:

calendar.setFirstDayOfWeek(Calendar.MONDAY);

也可以设置Calendar.SUNDAY

设置好了就决定了当前日期的WEEK_OF_YEAR,但并不会改变DAY_OF_WEEK !

3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天

java calendar星期_Java正确获取星期Calendar.DAY_OF_WEEK相关推荐

  1. Java正确获取星期Calendar.DAY_OF_WEEK

    正确获取星期几(Calendar.DAY_OF_WEEK) Calendar now = Calendar.getInstance(); //一周第一天是否为星期天 boolean isFirstSu ...

  2. java 获取星期几_java中获取日期是星期几的两种方法

    java中取得指定日期是星期几可以采用下面两种方式取得日期是星期几:(推荐:java视频教程) 1.使用Calendar类//根据日期取得星期几 public static String getWee ...

  3. java怎么打印星期_java中获取日期是星期几的两种方法

    java中取得指定日期是星期几可以采用下面两种方式取得日期是星期几:(推荐:java视频教程) 1.使用Calendar类//根据日期取得星期几 public static String getWee ...

  4. 获取java时间 小时_Java 如何获取当前时间前一个小时的时间

    在网上找好多类似文章或者帖子,绝大部分都是不正确和不准确的,都是互相转来转去的.下面是我自己通过研究Java API得出正确获取当前时间前一小时的时间正确方法. public static void ...

  5. php获取上个星期,php中获取星期的方法分享

    php获取星期的方法,data就可以获取英文的星期比如:Sunday date("l"); 这个可以获取数字星期比如123,注意0是星期日 date("w"); ...

  6. java application 路径_java项目获取根路径(web项目和application项目的区分)

    Java项目中经常要读取配置文件,涉及到读取配置文件的地方,就会要读定位文件的路径.因此,在项目如何正确获取文件路径尤为关键. 根据不同的java项目,在获取文件路径时候有一些 小区别 测试环境:E: ...

  7. java正则表达式 中括号_Java正则表达式获取中括号之间的内容

    不包含中括号 正则表达式如下: \\[(.*?)] 注: .匹配除换行符\n之外的任何单字符: *匹配前面的子表达式零次或多次: ?匹配前面的子表达式零次或一次: ()标记一个子表达式的开始和结束位置 ...

  8. java取当前日期_java如何获取系统的当前时间

    java获取系统当前时间的方法:获取当前时间和当前时间的前30秒,代码为[simple date format df = new simple date format(" yyyy-MM-D ...

  9. java月份列表_java – 如何获取两个日期之间的月份和年份列表

    使用较少的代码和基本的Java库并获得您要求的结果.所以你可以修改date1和date2变量. import java.text.DateFormat; import java.text.ParseE ...

最新文章

  1. Android 底层驱动开发步骤——linux内核层、HAL层、JNI层
  2. java + selenium 种WebElement 定位到父元素 跟子元素
  3. SSD训练自己的数据集
  4. 逆向入门--代码段的介绍
  5. python和php可以一起用吗_Apache同时支持PHP和Python的配置方法
  6. Oracle优化-表设计
  7. ssd训练自己数据集
  8. verp中的redundantRobot的逆运动学注意事项
  9. dbcc dbreindex server sql_SQL Server性能的提高,可通过DBCC DBREINDEX重建索引
  10. 读取模式错误、计算引擎操作复杂:这些Hadoop问题该如何应对?
  11. selenium-滚动
  12. 翱翔云天的SAP技术课程体系
  13. Perl教程-3.基础语法
  14. 如何用好谷歌等搜索引擎?
  15. Cubase中文版教程分享:如何通过音频剪辑软件创建工程
  16. C语言之动态内存管理
  17. 什么是语法糖(Syntactic sugar)?
  18. MP-SPDZ详细介绍
  19. ElasticSearch中should怎么没用
  20. 幕课在线办公项目笔记——day1

热门文章

  1. 【开源电机驱动】使用电气等效对机械系统建模
  2. 移动端网页特效(二)
  3. Apache ServiceComb Meetup -Shanghai 2019 (PPT Download)
  4. 面试总结:阿里巴巴视频面试0918
  5. 我的世界1.72 Java下载_我的世界1.7.2java下载 java路径有误怎么设置
  6. babyos2(35) network(1) -- simple RTL8139 nic driver
  7. genetic model
  8. 学习C#必备的编程软件——pow_na的博客
  9. pygame库pgu使用介绍
  10. 软件著作权和专利权有什么不同