精华内容
下载资源
问答
  • 最近需要通过java来获取本周或上周,或最近几(含本周,不含本周)日期区间,参考这篇文章https://blog.csdn.net/orszsxlping/article/details/47402631后,编写了一个工具类 import java.text.SimpleDateFormat...

    最近需要通过java来获取本周或上周,或最近几周(含本周,不含本周)日期区间,参考这篇文章https://blog.csdn.net/orszsxlping/article/details/47402631后,编写了一个工具类

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    public class DateUtil {
        /**
         * 获取起止日期
         * @param sdf 需要显示的日期格式
         * @param date 需要参照的日期
         * @param n 最近n周
         * @param option 0 开始日期;1 结束日期
         * @param k 0 包含本周 1 不包含本周
         * @return
         */
        public static String getFromToDate(SimpleDateFormat sdf, Date date, int n, int option, int k) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
            int offset = 0 == option ? 1 - dayOfWeek : 7 - dayOfWeek;
            int amount = 0 == option ? offset - (n - 1  + k) * 7 : offset - k * 7;
            calendar.add(Calendar.DATE, amount);
            return sdf.format(calendar.getTime());
        }
    
        /**
         * 根据当前日期获得最近n周的日期区间(包含本周)
         * @param n
         * @param sdf
         * @return
         */
        public static String getNWeekTimeInterval(int n, SimpleDateFormat sdf) {
            String beginDate = getFromToDate(sdf, new Date(), n, 0, 0);
            String endDate = getFromToDate(sdf, new Date(), n, 1, 0);
            return beginDate + "," + endDate;
        }
    
        /**
         * 根据当前日期获得最近n周的日期区间(不包含本周)
         * @param n
         * @param sdf
         * @return
         */
        public static String getNWeekTimeIntervalTwo(int n, SimpleDateFormat sdf) {
            String beginDate = getFromToDate(sdf, new Date(), n, 0, 1);
            String endDate = getFromToDate(sdf, new Date(), n, 1, 1);
            return beginDate + "," + endDate;
        }
    
        /**
         * 根据当前日期获得本周的日期区间(本周周一和周日日期)
         * @param sdf
         * @return
         */
        public static String getThisWeekTimeInterval(SimpleDateFormat sdf) {
            return getNWeekTimeInterval(1, sdf);
        }
    
        /**
         * 根据当前日期获得上周的日期区间(上周周一和周日日期)
         * @param sdf
         * @return
         */
        public static String getLastWeekTimeInterval(SimpleDateFormat sdf) {
            return getNWeekTimeIntervalTwo(1, sdf);
        }
    
        public static void main(String[] args) {
            System.out.println(getThisWeekTimeInterval(new SimpleDateFormat("yyyy-MM-dd"))); // 获得本周的日期区间
            System.out.println(getLastWeekTimeInterval(new SimpleDateFormat("yyyy-MM-dd"))); // 获得上周的日期区间
        }
    }

     

    展开全文
  • 最近需要通过java来获取本周或上周,或最近几(含本周,不含本周)日期区间, 参考这篇文章https://blog.csdn.net/orszsxlping/article/details/47402631后, 编写了一个工具类如下: import java.text....

    最近需要通过java来获取本周或上周,或最近几周(含本周,不含本周)日期区间,

    参考这篇文章https://blog.csdn.net/orszsxlping/article/details/47402631后,

    编写了一个工具类如下:

     

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
     
    public class DateUtil {
        /**
         * 获取起止日期
         * @param sdf 需要显示的日期格式
         * @param date 需要参照的日期
         * @param n 最近n周
         * @param option 0 开始日期;1 结束日期
         * @param k 0 包含本周 1 不包含本周
         * @return
         */
        public static String getFromToDate(SimpleDateFormat sdf, Date date, int n, int option, int k) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
            int offset = 0 == option ? 1 - dayOfWeek : 7 - dayOfWeek;
            int amount = 0 == option ? offset - (n - 1  + k) * 7 : offset - k * 7;
            calendar.add(Calendar.DATE, amount);
            return sdf.format(calendar.getTime());
        }
     
        /**
         * 根据当前日期获得最近n周的日期区间(包含本周)
         * @param n
         * @param sdf
         * @return
         */
        public static String getNWeekTimeInterval(int n, SimpleDateFormat sdf) {
            String beginDate = getFromToDate(sdf, new Date(), n, 0, 0);
            String endDate = getFromToDate(sdf, new Date(), n, 1, 0);
            return beginDate + "," + endDate;
        }
     
        /**
         * 根据当前日期获得最近n周的日期区间(不包含本周)
         * @param n
         * @param sdf
         * @return
         */
        public static String getNWeekTimeIntervalTwo(int n, SimpleDateFormat sdf) {
            String beginDate = getFromToDate(sdf, new Date(), n, 0, 1);
            String endDate = getFromToDate(sdf, new Date(), n, 1, 1);
            return beginDate + "," + endDate;
        }
     
        /**
         * 根据当前日期获得本周的日期区间(本周周一和周日日期)
         * @param sdf
         * @return
         */
        public static String getThisWeekTimeInterval(SimpleDateFormat sdf) {
            return getNWeekTimeInterval(1, sdf);
        }
     
        /**
         * 根据当前日期获得上周的日期区间(上周周一和周日日期)
         * @param sdf
         * @return
         */
        public static String getLastWeekTimeInterval(SimpleDateFormat sdf) {
            return getNWeekTimeIntervalTwo(1, sdf);
        }
     
        public static void main(String[] args) {
            System.out.println(getThisWeekTimeInterval(new SimpleDateFormat("yyyy-MM-dd"))); // 获得本周的日期区间
            System.out.println(getLastWeekTimeInterval(new SimpleDateFormat("yyyy-MM-dd"))); // 获得上周的日期区间
        }
    }

     

     

     

     

     

    展开全文
  • 最近在做项目的过程中遇到了一个问题,就是我利用java的日期工具类获取周数的时候发现跟数据库的周数(特别是年与年的临界值)对应不上,故就做了一些分析,发现这里面还是有些玄机的。在获取周数的时候有两个重要的...

    最近在做项目的过程中遇到了一个问题,就是我利用java的日期工具类获取周数的时候发现跟数据库的周数(特别是年与年的临界值)对应不上,故就做了一些分析,发现这里面还是有些玄机的。在获取周数的时候有两个重要的参数

      //设置周一是一周的开始
      calendar.setFirstDayOfWeek(Calendar.MONDAY);
      // 每年的第一周最少有几天   odps函数  weekofyear  4天以上
      calendar.setMinimalDaysInFirstWeek(4);

    1、设置 周一作为没周的第一天,每年的第一周最少包含4天

        /**
         *  根据日期字符串获取是当年的第几周
         * @param date_str  格式 yyyy-MM-dd
         * @return
         */
        public static Integer getWeekOfYear(String date_str) {
            try {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                Date date = format.parse(date_str);
                Calendar calendar = Calendar.getInstance();
        //        设置周一是一周的开始
                calendar.setFirstDayOfWeek(Calendar.MONDAY);
        //        每年的第一周最少有几天   odps函数  weekofyear  4天以上
                calendar.setMinimalDaysInFirstWeek(4);
                calendar.setTime(date);
                return calendar.get(Calendar.WEEK_OF_YEAR);
            } catch (Exception e) {
                return null;
            }
    
        }
            System.out.println("2017-01-01>>>>>>>>"+getWeekOfYear("2017-01-01"));
            System.out.println("2017-01-02>>>>>>>>"+getWeekOfYear("2017-01-02"));
    
            System.out.println("2017-11-12>>>>>>>>"+getWeekOfYear("2017-11-12"));
            System.out.println("2017-11-13>>>>>>>>"+getWeekOfYear("2017-11-13"));
    
            System.out.println("2016-05-01>>>>>>>>"+getWeekOfYear("2016-05-01"));
            System.out.println("2016-05-02>>>>>>>>"+getWeekOfYear("2016-05-02"));
    
            System.out.println("2017-12-31>>>>>>>>"+getWeekOfYear("2017-12-31"));
            System.out.println("2018-01-01>>>>>>>>"+getWeekOfYear("2018-01-01"));
            System.out.println("2014-12-29>>>>>>>>"+getWeekOfYear("2014-12-29")); //1
            System.out.println("2014-12-31>>>>>>>>"+getWeekOfYear("2014-12-31")); //1
            System.out.println("2015-12-29>>>>>>>>"+getWeekOfYear("2015-12-29")); //53

    得到

    2017-01-01>>>>>>>>52
    2017-01-02>>>>>>>>1
    2017-11-12>>>>>>>>45
    2017-11-13>>>>>>>>46
    2016-05-01>>>>>>>>17
    2016-05-02>>>>>>>>18
    2017-12-31>>>>>>>>52
    2018-01-01>>>>>>>>1
    2014-12-29>>>>>>>>1
    2014-12-31>>>>>>>>1
    2015-12-29>>>>>>>>53

    2、不进行任何设置

        /**
         *  根据日期字符串获取是当年的第几周
         * @param date_str  格式 yyyy-MM-dd
         * @return
         */
        public static Integer getWeekOfYear(String date_str) {
            try {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                Date date = format.parse(date_str);
                Calendar calendar = Calendar.getInstance();
        //        设置周一是一周的开始
    //            calendar.setFirstDayOfWeek(Calendar.MONDAY);
        //        每年的第一周最少有几天   odps函数  weekofyear  4天以上
    //            calendar.setMinimalDaysInFirstWeek(4);
                calendar.setTime(date);
                return calendar.get(Calendar.WEEK_OF_YEAR);
            } catch (Exception e) {
                return null;
            }
    
        }

    调用

            System.out.println("2017-01-01>>>>>>>>"+getWeekOfYear("2017-01-01"));
            System.out.println("2017-01-02>>>>>>>>"+getWeekOfYear("2017-01-02"));
    
            System.out.println("2017-11-12>>>>>>>>"+getWeekOfYear("2017-11-12"));
            System.out.println("2017-11-13>>>>>>>>"+getWeekOfYear("2017-11-13"));
    
            System.out.println("2016-05-01>>>>>>>>"+getWeekOfYear("2016-05-01"));
            System.out.println("2016-05-02>>>>>>>>"+getWeekOfYear("2016-05-02"));
    
            System.out.println("2017-12-31>>>>>>>>"+getWeekOfYear("2017-12-31"));
            System.out.println("2018-01-01>>>>>>>>"+getWeekOfYear("2018-01-01"));
            System.out.println("2014-12-29>>>>>>>>"+getWeekOfYear("2014-12-29")); //1
            System.out.println("2014-12-31>>>>>>>>"+getWeekOfYear("2014-12-31")); //1
            System.out.println("2015-12-29>>>>>>>>"+getWeekOfYear("2015-12-29")); //53

    得到

    2017-01-01>>>>>>>>1
    2017-01-02>>>>>>>>1
    2017-11-12>>>>>>>>46
    2017-11-13>>>>>>>>46
    2016-05-01>>>>>>>>19
    2016-05-02>>>>>>>>19
    2017-12-31>>>>>>>>1
    2018-01-01>>>>>>>>1
    2014-12-29>>>>>>>>1
    2014-12-31>>>>>>>>1
    2015-12-29>>>>>>>>1

    总结:
    这两个值设置的参数不一样获取的周数也就不一样,因为默认情况下calendar是把周日作为每周的第一天。如果在进行用周数进行查询或教研的逻辑时,一定要约定好设置参数,要不然就可能得不到自己想要的数据。

    展开全文
  • java如何获取当前日期和时间

    万次阅读 多人点赞 2019-06-12 18:11:36
    本篇博客主要总结java里面关于获取当前时间的一些方法 System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的。例如: ...

    本篇博客主要总结java里面关于获取当前时间的一些方法

    System.currentTimeMillis()

    获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的。例如:

    1543105352845  

    我们可以将时间戳转化成我们易于理解的格式

    SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
    Date date = new Date(System.currentTimeMillis());
    System.out.println(formatter.format(date));

    则该时间戳对应的时间为:

    2018-11-25 at 01:22:12 CET

    值得注意的是,此方法会根据我们的系统时间返回当前值,因为世界各地的时区是不一样的。

    java.util.Date

    在Java中,获取当前日期最简单的方法之一就是直接实例化位于Java包java.util的Date类。

    Date date = new Date(); // this object contains the current date value 

    上面获取到的日期也可以被format成我们需要的格式,例如:

    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");  
    System.out.println(formatter.format(date));  

    Calendar API

    Calendar类,专门用于转换特定时刻和日历字段之间的日期和时间。

    使用Calendar 获取当前日期和时间非常简单:

    Calendar calendar = Calendar.getInstance(); // get current instance of the calendar  

    与date一样,我们也可以非常轻松地format这个日期成我们需要的格式

    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");  
    System.out.println(formatter.format(calendar.getTime()));  

    上面代码打印的结果如下:

    25-11-2018 00:43:39
    

    Date/Time API

    Java 8提供了一个全新的API,用以替换java.util.Date和java.util.Calendar。Date / Time API提供了多个类,帮助我们来完成工作,包括:

    • LocalDate
    • LocalTime
    • LocalDateTime
    • ZonedDateTime

    LocalDate

    LocalDate只是一个日期,没有时间。 这意味着我们只能获得当前日期,但没有一天的具体时间。

    LocalDate date = LocalDate.now(); // get the current date 

    我们可以format它

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");  
    System.out.println(date.format(formatter));  

    得到的结果只有年月日,例如:

    25-11-2018 

    LocalTime

    LocalTime与LocalDate相反,它只代表一个时间,没有日期。 这意味着我们只能获得当天的当前时间,而不是实际日期:

    LocalTime time = LocalTime.now(); // get the current time  

    可以按如下方式format

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");  
    System.out.println(time.format(formatter)); 

    得到的结果类似如下:

    00:55:58  

    LocalDateTime

    最后一个是LocalDateTime,也是Java中最常用的Date / Time类,代表前两个类的组合 - 即日期和时间的值:

    LocalDateTime dateTime = LocalDateTime.now(); // get the current date and time  
    

    format的方式也一样

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");  
    System.out.println(dateTime.format(formatter));  

    得到的日期结果类似于:

    25-11-2018 00:57:20  

     

    展开全文
  • 获取当前日期获取当前时间、获取指定格式的日期时间、时间戳 代码如下,复制粘贴改包名即可使用, package com.llw.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java....
  • 主要介绍了vbs获取当前时间日期的代码,需要的朋友可以参考下
  • public String getWeeksDate... //获取当前日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getIn...
  • 根据指定日期获取日期所在的所有日期 二.代码实现 package com.function.util; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; ...
  • 就把本周开始日期当做条件计算出当前日期是第几 // 跨月也是如此, 每个月有多少,是根据每月有几个星期一来计算的…(以2019-4-29 – 2019-5-5为例,周一是4月29号 星期天为5与5号,周一在4月那这个跨月,算四...
  • 目录 datetime获取当前日期和时间 time获取当前日期和时间 ...# 获取当前时间, 其中中包含了year, month, hour, 需要import datetime today = datetime.date.today() print(today) print(today.year...
  • excel 获取当前日期

    2019-02-19 15:16:00
    获取第几(如第12) ="第"&...获取当前日期(如2019/2/1) =TODAY() 取绝对值 =ABS(B6-B8) xxx标签页的c列,如果单元格内容包含已解决,则计数加一 =COUNTIF(xxx!C:C...
  • 1、获取的是当前日期,不包含时间 SELECT CURRENT_DATE()   2、获取的是当前时间,不包含日期  SELECT CURRENT_TIME() 3、获取的是当前日期当前时间(同sysdate()) SELECT CURRENT_TIMESTAMP...
  • //获得当前日期前几天的日期(不包含当天),dataStr为给定日期,count为前几天 public String getBeforeDate(String dateStr,int count){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ...
  • SqlServer获取当前日期

    2018-06-21 16:45:29
    SqlServer获取当前日期 1. 获取当前日期 selectGETDATE() 格式化: selectCONVERT(v...
  • SQL中获取日期当前的第几

    千次阅读 2012-08-14 15:53:31
    最近做报表需要取某天是当年的第几,用到了两个取的函数。 WW: 每年的1月1日作为当年的第一的第一天(不管当年的1月1日是星期几); 比如:2011/01/01 是周六, 在Oracle中被定义为2011年的第一的第一...
  • //当前时间,7个工作日 youWant=d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds(); //格式化 console.log(youWant);
  • /** * @author zhangjx * @date 2019/8/28 17:07 */ public class DateUtil { private final static SimpleDateFormat SDF = new SimpleDateFormat( "yyyyMMdd");... * 最近1周获取起止日期 ...
  • 介绍 PostgreSQL 获取当前日期时间的函数及注意事项:包括 CURRENT_DATE、CURRENT_TIME、LOCALTIME、CURRENT_TIMESTAMP、LOCALTIMESTAMP、transaction_timestamp()、statement_timestamp()、clock_timestamp()、time...
  • 例如今天是2021年6月1日,周二,6月1日所在为:周一2021-5-31 ~ 周日2021-6-6。 方法一: let date = new Date(); let currYear = date.getFullYear(); let currMonth = date.getMonth(); let currWeekDay = ...
  • 在Python里如何获取当前日期和时间呢?在Python语言里,我们可以通过调用什么模块或者类函数来得到当前的时间或日期呢? 当然你可以使用时间模块(time module),该模块提供了各种和时间相关的函数。但是这个...
  • //判断当前日期是否为周末,因为周末是本周第一天,如果不向后推迟一天的到的将是下周一的零点,而不是本周一零点 if (1 == cal.get(Calendar.DAY_OF_WEEK)) { cal.add(Calendar.DATE, -1); } //时间减去7天 cal....
  • 当前有一份从20010101到20201231的数据,现在需要获得每个日期对应在每个月中的第几,为了实现日历展示的那种格式 展示对应日期所在的是该月份的第几。 **多种日期格式:**to_char(date,‘XXXX’) YYYY:四位...
  • 获取当前日期 13 var mytime=myDate.toLocaleTimeString(); // 获取当前时间 14 myDate.toLocaleString( ); // 获取日期与时间         转载于:...
  • 因为最近的业务系统需求,前端有两个时间选择框,分别为startTime和endTime...可以返回当前日期或指定日期的前N天的日期集合,如果传入的开始时间和结束时间间隔太大,还可以自动适应时间。 废话不多说,直接上代码。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 255,426
精华内容 102,170
关键字:

获取当前周包含的日期