精华内容
下载资源
问答
  • 关于Java中使用Calendar.MONTH和Calendar.DAY_OF_WEEK相关注意事项java的Calendar,获取月份少一月的问题及其它注意事项:Calendar.MONTH,这是一个有别于现实中日历的值Calender.DAY_OF_WEEK,表示一个星期中的某天...

    Java的Calendar,获取月份少一月的问题及其它注意事项

    import java.util.*;
    
    public class DateClass{
        public static void main(String args[]){
            Date m = new Date( );
            System.out.println("现在是:" + m.toString());
            Calendar n = Calendar.getInstance();
            int year = n.get(Calendar.YEAR);
            int month = n.get(Calendar.MONTH) + 1;
            int day = n.get(Calendar.DATE);
            int week = n.get(Calendar.DAY_OF_WEEK);
            Date t = n.getTime();
            String weekArr = new String("日一二三四五六");
            String weekIndexStr = weekArr.substring(week - 1, week);
            String x = new String();
            x = "现在是:" + year + "年" + month + "月" + day + "日,星期" + weekIndexStr;
            System.out.println("现在是:" + t);
            System.out.println(x);
        }
    }
    

    1.Calendar.MONTH,这是一个有别于现实中日历的值

    在格里高利历和罗马儒略历中一年中的第一个月是JANUARY,它为 0;最后一个月取决于一年中的月份数。

    所以这个值的初始值为0,因此我们用它来表示日历月份时需要加1。

    2.Calender.DAY_OF_WEEK,表示一个星期中的某天

    该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY 。

    我们知道DAY_OF_WEEK是获取当前日期是一周中的第几天,而一周从周日算起,因此当我们取得这个值之后,为了正确地截取出随后的字符串week中的那个中文字符,需要减1来达到目的。

    展开全文
  • int weekToday= calendar.get(Calendar.DAY_OF_WEEK); 运行出错显示: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.Calendar.get(int)' on a null object reference 原因...

    代码用法

    Calendar calendar = null;
    int  weekToday= calendar.get(Calendar.DAY_OF_WEEK);
    

    运行出错显示:

    java.lang.NullPointerException:
    Attempt to invoke virtual method ‘int java.util.Calendar.get(int)’ on a null object reference

    原因暂时没找出来(有知道原因的大哥指点指点吗),但有解决办法:

      Calendar cal=Calendar.getInstance();
     int  weekToday= cal.get(Calendar.DAY_OF_WEEK);
    

    将原来的代码修改,可以返回正常结果,而且没有报异常。

    展开全文
  • Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。 1. 在获取当前日期在一年当中是第几月份时,Calendar.MONTH + 1 的原因 Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不...

    前言

    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种情况是需要区分的。
    看下表的返回值

    星期日为一周的第一天SUNMONTUEWEDTHUFRISAT
    DAY_OF_WEEK返回值1234567
    星期一为一周的第一天 MONTUEWEDTHUFRISATSUN
    DAY_OF_WEEK返回值1234567

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

    4. 举例说明

    import java.util.Calendar;
    import java.util.Date;
    
    public class Test {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            Date date = new Date();// 2019/11/25, 星期一
            c.setTime(date);//设置日期
            System.out.println(c.get(Calendar.DAY_OF_MONTH)); //输出25
            System.out.println(c.get(Calendar.DAY_OF_WEEK));// 输出2, 应减-1
            System.out.println(c.get(Calendar.MONTH));//输出10, 应加1
        }
    }
    
    展开全文
  • 我正在尝试检查感恩节(11月4日星期四). 我的ZonedDateTime为2019-11-23T08:43:14.699-07:00 [America / Los_Angeles] ...在日历中,我们有Calendar.DAY_OF_WEEK_IN_MONTH来计算一个月中的星期数. ZonedDateTime...

    我正在尝试检查感恩节(11月4日星期四).
    我的ZonedDateTime为2019-11-23T08:43:14.699-07:00 [America / Los_Angeles]

     

    如何使用Java 8 ZonedDateTime API检查是否在星期四第4周

    在日历中,我们有Calendar.DAY_OF_WEEK_IN_MONTH来计算一个月中的星期数. ZonedDateTime中是否有此类内容?

    我有这个使用日历.

     

    // check Thanksgiving (4th Thursday of November)
        if (cal.get(Calendar.MONTH) == Calendar.NOVEMBER
            && cal.get(Calendar.DAY_OF_WEEK_IN_MONTH) == 4
            && cal.get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY) {
            return false;
        }

    如何使用ZonedDateTime实现此目的?

    最佳答案

    您需要的是每月的一致星期.该月的第一个对齐周是从该月的1日到7日,因此包含该月的第一个星期四,无论该月是在一周的哪一天开始.第二个对齐的星期是该月的8到14,依此类推.

     

     

        ZonedDateTime zdt = ZonedDateTime.parse("2019-11-23T08:43:14.699-07:00[America/Los_Angeles]");
        if (zdt.getMonth().equals(Month.NOVEMBER)
                && zdt.get(ChronoField.ALIGNED_WEEK_OF_MONTH) == 4
                && zdt.getDayOfWeek().equals(DayOfWeek.THURSDAY)) {
            System.out.println("" + zdt + " is on Thanksgiving");
        }

    由于感恩节是今年11月28日,因此上述摘要测试(11月23日)不会打印任何内容.试试正确的日子:

     

        ZonedDateTime zdt = ZonedDateTime.parse("2019-11-28T17:34:56.789-07:00[America/Los_Angeles]");

    2019-11-28T16:34:56.789-08:00[America/Los_Angeles] is on Thanksgiving

    展开全文
  • 简单地概括成一句话就是:在set(DAY_OF_WEEK)方法之前先调用一个get方法,例如 cal.get(Calendar.DAY_OF_WEEK);</p> <p><a href=...
  • Calendar.MONTH的返回值,以下为官方文档: public static final int JANUARY = 0; public static final int FEBRUARY = 1; public static final int MARCH = 2; public static final int APRIL = 3; publi.....
  • Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。 1. 在获取月份时,Calendar.MONTH + 1 的原因(Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值)Java...
  • 正确获取星期几(Calendar.DAY_OF_WEEK

    万次阅读 2016-10-08 16:20:00
    System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); 返回的是周几,而不是一周的第几天   可以这样设置,星期第一天是星期几: calendar.setFirstDayOfWeek(Calendar.MONDAY); 也可以设置...
  • 获取你设置的myCal那年那月那日是星期几,必须要减一, 因为数组下标从0开始,而她返回的是数组的内容,是数组{1,2,3,4,5,6,7}中用1~7来表示:星期天,星期一,星期二...所以,myCal.get(Calendar.DAY_OF_WEEK)-1返回
  • 网上找的,刚刚接触Calendar类,有点复杂,记下来。   Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。 1. 在获取月份时,Calendar.MONTH + 1 的原因 Java中的月份遵循了罗马历中...
  • 这是代码 public final static TimeZone tz1 = TimeZone.getTimeZone("GMT+8");//这是在另一个包里面定义的 Calendar thisday = new Calnendar....int weekday = thisday.get(Calendar.DAY_OF_WE
  • 正确获取星期几(Calendar.DAY_OF_WEEKCalendar now = Calendar.getInstance(); //一周第一天是否为星期天 boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY); //获取周几 int weekDay ...
  • ![图片说明](https://img-ask.csdn.net/upload/201509/29/1443516493_933584.png)![图片说明](https://img-ask.csdn.net/upload/201509/29/1443516455_128049.png)
  • 因为Calendar类在初始化时系统时间时已经设置了Calendar.DAY_OF_MONTH的最大值,当我们修改了年份和月份的值,Calendar并没有同时去修改设置对应字段的ActualMaximum的值。 方法 说明 void ...
  • Calendar.get(Calendar.DAY_OF_WEEK)

    千次阅读 2014-10-15 15:30:55
    获取你设置的Calendar那年那月那日是星期几
  • 网上找的,刚刚接触Calendar类,有点复杂,记下来。 Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。 1. 在获取月份时,Calendar.MONTH + 1 的原因 Java中的月份遵循了罗马...
  • 例如: ...int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH) 得到日期为:3 例如: 在2017.03.01-28号 新建一个Calendar的単例 设置年:2017 设置月:2 int day = cal.getActualMaximum(Calen...
  • Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。 1. 在获取月份时,Calendar.MONTH + 1 的原因 Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是...
  • calendar.getActualMaximum(calendar.DAY_OF_MONTH)的陷阱

    万次阅读 多人点赞 2017-09-29 10:49:03
    在使用calendar.getActualMaximum(calendar.DAY_OF_MONTH)获取每月最后一天时,发现在2月出现了问题,获取到的时间是20170303,而其他月份获取的最后一天都是正确的。 而且之前获取2月最后一天是28号,也每月问题。...
  • 需要注意的是,国际上是以星期日为一周第一天的开始,Calendar中提供的DAY_OF_WEEK获取的一周也是以星期日作为一周的开始。 而中国的习惯是以星期一作为一周的开始,所以需要根据项目的实际需求来设置。 1、...
  • JAVA的Calendar.WEEK_OF_YEAR与DB2或MySql数据库中week_iso(date)或weekOfYear(date),结果保持一致的方法 这样做统计的时候免去很多麻烦,无意中发现的,分享给大家!!!!!! 如果有高手,可以帮我解释一下,本人...
  • 简单准确理解Calendar.DAY_OF_WEEK

    万次阅读 2011-08-24 10:29:07
    System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); 返回的是周几,而不是一周的第几天 可以这样设置,星期第一天是星期几: calendar.setFirstDayOfWeek(Calendar.MOND
  • 需要注意的是,国际上是以星期日为一周第一天的开始,Calendar中提供的DAY_OF_WEEK获取的一周也是以星期日作为一周的开始。 而中国的习惯是以星期一作为一周的开始,所以需要根据项目的实际需求来设置。 Calendar...
  • 1. 比较Calendar.DAY_OF_WEEK与Calendar.DAY_OF_WEEK_IN_MONTH 根据文档: int DAY_OF_WEEK Field number forgetandsetindicating the day of the week. int DAY_OF_WEEK_IN_MONTH Field number...
  • nowDate.add(Calendar.DAY_OF_MONTH,1); 谁能告诉我这里面的 1 是什么意思 1Y█重量█SB2014-11-25 优质解答 add(Calendar.DAY_OF_MONTH,1)是nowDate+1天,一天后的日期 add(Calendar.DAY_OF_MONTH,-...
  • cal1.add(Calendar.DAY_OF_MONTH,1); cal1.add(Calendar.DAY_OF_YEAR,1); cal1.add(Calendar.DATE,1); 就单纯的add操作结果都一样,因为都是将日期+1 就没有区别说是在月的日期中加1还是年的日期中加1 但是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,687
精华内容 11,074
关键字:

calendar.day_of_week