文档章节

 正确获取星期几(Calendar.DAY_OF_WEEK)

上班不要玩手机
 上班不要玩手机
发布于 2016/10/08 16:20
字数 575
阅读 150
收藏 0

 正确获取星期几(Calendar.DAY_OF_WEEK)

Java代码 

 收藏代码

  1. Calendar now = Calendar.getInstance();  
  2. //一周第一天是否为星期天  
  3. boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY);  
  4. //获取周几  
  5. int weekDay = now.get(Calendar.DAY_OF_WEEK);  
  6. //若一周第一天为星期天,则-1  
  7. if(isFirstSunday){  
  8.     weekDay = weekDay - 1;  
  9.     if(weekDay == 0){  
  10.         weekDay = 7;  
  11.     }  
  12. }  
  13. //打印周几  
  14. System.out.println(weekDay);  
  15.   
  16. //若当天为2014年10月13日(星期一),则打印输出:1  
  17. //若当天为2014年10月17日(星期五),则打印输出:5  
  18. //若当天为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 不需要特殊的操作,他直接返回一个月中的第几天

本文转载自:http://chamcon.iteye.com/blog/2144433

上班不要玩手机
粉丝 1
博文 58
码字总数 6753
作品 0
苏州
程序员
私信 提问
android 时间转化

import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class DateUtils { public static String getTodayDateTime() { ......

碎片逻辑
2018/01/19
0
0
java 获取指定日期为星期几的代码

public String getWeekOfDate(Date dt) { String[] weekDays = {"日", "一", "二", "三", "四", "五", "六"}; Calendar cal = Calendar.getInstance(); cal.setTime(dt); int w = cal.get(C......

zhengqingping
2014/02/14
0
0
java获取当前时间所在一周的周一和周日日期

/** * 当前时间所在一周的周一和周日时间 * @param time 当前时间 * @return */ public static Map getWeekDate(String time) { Map map = new HashedMap(); SimpleDateFormat sdf = new Si......

小弱鸡
2018/07/18
0
0
java时间格式大全

java时间格式大全 java.util.*; import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public stat......

cccsdfq egrgww
2009/08/29
1K
2
java时间格式大全

java时间格式大全 java.util.*; import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public stat......

cccsdfq egrgww
2009/08/28
153
2

没有更多内容

加载失败,请刷新页面

加载更多

centos7 新手阿里云服务器安装mongodb

简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 MongoDB特点 模式自由 :可以把不同结构的文档存...

醉雨
16分钟前
1
0
sql注入漏洞,应屏蔽SQL注入攻击

注:SQL注入好比是前端URL传参数请求时参数以SQL 做为参数传入,如 select 1 from dual where 1=1 or 1=1 and 1=2;(类似这样的SQL语句) 防御方法 如果自己编写防注代码,一般是先定义一个函...

颜丽
16分钟前
1
0
装饰者模式

 代理模式与装饰者模式看起来很像,都实现基础对象实现的接口,在其自身对象中都保存着对被代理/被装饰者的对象引用。   先来看看装饰者模式的定义:动态的将责任附加到被装饰者对象上,用...

铁骨铮铮
20分钟前
0
0
我为什么飞行 10000 公里去西班牙参加 KubeCon?

2019 年 5 月 20 日至 23 日, 由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 KubeCon + CloudNativeCon EU(欧洲场)即将在热情洋溢的巴塞罗那盛装启幕。 作为云计算领...

zhaowei121
38分钟前
0
0
Node.getTextContent() not found 解决办法【不需要调整builder path下面包顺序】

新导入的工程,w3c的getTextContent找不到,response的setCharacterEncoding找不到,网上很多教程都是“调整工程builder path的lib包顺序把jre、tomcat调到上面即可”,但是进入项目的build...

嘿嘿嘿IT
45分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部