Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。

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.地区名) 来实现。

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

例子:

/**
     * 获取当前日期是星期几<br>
     * 
     * @param dt
     * @return 当前日期是星期几
     */
    public static String getWeekOfDate(Date dt) {
        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        Calendar cal = Calendar.getInstance();
        cal.setTime(dt);

int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        if (w < 0)
            w = 0;

return weekDays[w];
    }

转载于:https://www.cnblogs.com/zghull/p/3448304.html

calendar的使用注意点相关推荐

  1. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  2. java calendar与date_Java中date和calendar的用法

    获取现在系统的时间和日期看起来是一件非常神奇的事情,但是当使用date和calendar之后发现仍然非常神奇. 1.date 使用date日期之前需要导入包: import java.text.Sim ...

  3. Calendar如何只显示“一、二、三...日”,不显示“星期”

    秋水无恨 asp.net Calendar DayNameFormat Globalization DayNames http://www.csdn.net/develop/Read_Article. ...

  4. 【JavaSE】day03_Date、SimpleDateFormat、Calendar、Collection

    [JavaSE]day03_Date.SimpleDateFormat.Calendar.Collection 1.Date及其经常使用API 1)JAVA 中的时间 Java中的时间使用标准类库的D ...

  5. Calendar类点点滴滴积累

    为什么80%的码农都做不了架构师?>>>    set(f, value) 将日历字段 f 更改为 value.此外,它设置了一个内部成员变量,以指示日历字段 f 已经被更改.尽管日 ...

  6. php学习,一个简单的Calendar(2) 一个简单的活动页面

    有了前面的基础,后面就是将页面展示出来. 预览图如下:1号和31号分别有活动,会一并显示出来 这里需要搞定几个问题,一个就是数据库的连接,我们用\sys\class\class.db_connect. ...

  7. EBS form日历可选范围设置(calendar.setup )介绍

    Calendar是Template提供给我们的standard object.可以使我们方便的为日期型字段提供日期的选择列表. form中设置日历方法: 1. 为日期型字段指定LOV(ENABLE_L ...

  8. python中,time、calendar、datetime

    原文链接: python中,time.calendar.datetime-MakeDreamsFactory-51CTO博客 https://blog.51cto.com/14094286/23246 ...

  9. 使用java的Calendar对象获得当前日期的上几个度开始、结束时间

    思路: 先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期 /*** @param flag true:开始日期:false:结束日期* @return*/pub ...

  10. WordPress Editorial Calendar插件权限安全绕过漏洞

    漏洞名称: WordPress Editorial Calendar插件权限安全绕过漏洞 CNNVD编号: CNNVD-201302-369 发布时间: 2013-02-22 更新时间: 2013-0 ...

最新文章

  1. JAVA常见工具配置
  2. 去除源文件中的重复行的程序流程及其C代码实现
  3. [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)...
  4. Silverlight Blend动画设计系列六:动画技巧(Animation Techniques)之对象与路径转化、波感特效...
  5. 解决问题 inner element must either be a resource reference or empty.
  6. ] ssh登录慢的原因
  7. 计算机系统层次中应用语言级,计算机系统的多级层次结构
  8. 使用自定义断言丰富测试代码
  9. [paper reading] SSD
  10. 用jquery实现图片轮播
  11. python程序设计pdf上海交大_上海交大2011_2012程序设计python期末考试题
  12. qt之tcp通信,制作简易的仿qq功能
  13. Arduino开发ESP8266之ADS1115模数转换
  14. 灰灰考研c语言讲义,灰灰考研数据结构全书定稿demo.pdf
  15. 计算机操作系统的主要功能
  16. CSDN创作中心Markdown编辑器基本使用方法
  17. MacTeX添加.sty文件
  18. vue 子组件调用($emit)父组件方法后父组件方法如何回调子组件方法
  19. App Links的使用以及坑
  20. 查找chrome浏览器历史记录

热门文章

  1. Vue-路由模式 hash 和 history
  2. CF232C Doe Graphs
  3. 使用Nginx实现服务器反向代理和负载均衡
  4. 深入浅出话命令(Command)-笔记(-)
  5. 关于LateX的应用
  6. 字符集 ISO-8859-1(1)
  7. 自定义Docker容器的 hostname
  8. jQuery replaceWith replaceAll end的用法
  9. observeOn()与subscribeOn()的详解
  10. OpenGL 有时候纹理映射的部分问题