精华内容
下载资源
问答
  • 获取系统自身的日期,识别输入的日期是否正确,对日期进行一天或者减一天的操作
  • 调用addDay即可 day:2019-03-01 也可精确到毫秒 n:增加的天数 ... public static String addDay(String day,Integer n){ String f = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new Simple...

     调用addDay即可

    day:2019-03-01  也可精确到毫秒

    n:增加的天数

        //实现天数的增加
        public static String addDay(String day,Integer n){
            String f = "yyyy-MM-dd HH:mm:ss";
            SimpleDateFormat sdf = new SimpleDateFormat(f);
            Date d1 = conversionToDate(day,f);
            Calendar c = Calendar.getInstance();
            c.setTime(d1);
            c.add(Calendar.DAY_OF_MONTH, n);//利用Calendar 实现 Date日期+1天
            d1 = c.getTime();
            return sdf.format(d1);
        }
    
        //格式化时间
        public static Date conversionToDate(String date, String format){
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            Date d = null;
            try {
                d = sdf.parse(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return d;
        }

     

    展开全文
  • Android日期加任意天数计算方式

    千次阅读 2019-06-19 13:46:54
    比如 2019-05-03 10天,再20天,再30天,应该怎么计算。因为要考虑大小月(30天/31天),如果是2月还要考虑平年闰年。想想都会很头疼。一大推逻辑等着自己处理。 Calendar ...

    需求

    最近遇到了一个需求,任意一个日期 加10天,再加20天,再加30天,应该怎么计算?要考虑大小月(30天/31天),如果是2月还要考虑平年闰年。想想都会很头疼。一大推逻辑等着自己处理。
    android有一个 Calendar 类可以帮到我们非常简单的处理这个问题。

    Calendar

    先看下实现方法。

    	//获取Calendar的实例,默认是当前的时间
     	Calendar rightNow = Calendar.getInstance();
     	//当前时间 加10天
    	rightNow.add(Calendar.DAY_OF_YEAR, 10);
    	//new SimgpleDateFormat 进行格式化
    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
    	//利用Calendar的getTime方法,将时间转化为Date对象
    	Date date = rightNow.getTime();
    	//利用SimpleDateFormat对象 把Date对象格式化
    	String format = sdf.format(date);
    	Log.e(TAG, "this time add 10 days = " + format);
    	
    	输出日志
    	 this date add 10 days = 2019-06-29
    

    所有方法的解释都写在注释上了,也比较简单,不再解释了。

    分析一波

    	//获取Calendar实例
    	Calendar rightNow = Calendar.getInstance();
    	
    	public static Calendar getInstance()
        {
        	// 传入默认的时区,和默认的地区
            return createCalendar(TimeZone.getDefault(), Locale.getDefault(Locale.Category.FORMAT));
        }
    	//调用了Calendar的两个参数的实例化方法
    	 private static Calendar createCalendar(TimeZone zone, Locale aLocale)
        {
            // BEGIN Android-changed: only support GregorianCalendar here
            return new GregorianCalendar(zone, aLocale);
            // END Android-changed: only support GregorianCalendar here
        }
        //然后调用了子类GregorianCalendar的方法
        public GregorianCalendar(TimeZone zone, Locale aLocale) {
            super(zone, aLocale);
            gdate = (BaseCalendar.Date) gcal.newCalendarDate(zone);
            //这个System.currentTimeMillis()方法应该都很熟悉,获取系统当前时间(毫秒值)。
            //这个setTimeMillis()方法,是调用了父类Calendar的方法。
            //所以如果我们想要对当前时间/日期进行操作的话,直接Calander.getInstance()就可以。
            setTimeInMillis(System.currentTimeMillis());
        }
    

    任意日期的加减计算

    上面的分析,我们知道了 setTimeMillis(long millis) 方法可以为 Calendar 设置时间。其实还有个方法 setTime(Date date) 方法也可以设置。

    	//看源码我们也可以看到,setTime()调用的也是 setTimeMillis()
    	public final void setTime(Date date) {
            setTimeInMillis(date.getTime());
        }
    

    任意日期的加减计算

    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
    	String source = "2019-06-10";
    	try {
    	    Date date = sdf.parse(source);
    	    Calendar rightNow = Calendar.getInstance();
    	    rightNow.setTime(date);
    	    rightNow.add(Calendar.DAY_OF_YEAR, -60);
    	    Date time = rightNow.getTime();
    	    String format = sdf.format(time);
    	    Log.e(TAG, source + "减60天为:" + format);
    	    //2019-06-10减60天为:2019-04-11
    	} catch (ParseException e) {
    	    e.printStackTrace();
    	}
    

    其他功能

    除了以上功能,Calenar 还有一些实用的小功能。

    获取星期数

    Calendar rightNow = Calendar.getInstance();
    int dayOfWeek = rightNow.get(Calendar.DAY_OF_WEEK);
    Log.e(TAG,  " dayOfWeek = " + dayOfWeek);
    
    输出日志:
    dayOfWeek = 4
    当天2019-06-19 是周三。
    

    这里要注意的是,返回4并不是星期四的意思。对应关系,可以看下面源码。

    Calendar.class
    
        public final static int SUNDAY = 1;
     
        public final static int MONDAY = 2;
     
        public final static int TUESDAY = 3;
     
        public final static int WEDNESDAY = 4;
     
        public final static int THURSDAY = 5;
     
        public final static int FRIDAY = 6;
     
        public final static int SATURDAY = 7;
    

    获取今天是公历年的第几天

    int dayOfYear = rightNow.get(Calendar.DAY_OF_YEAR);
    Log.e(TAG, "dayOfYear = " + dayOfYear);
    
    输入日志
    dayOfYear = 170
    

    获取其他信息

    Calendar.YEAR //年份
    
    Calendar.MONTH // 月份 (从0开始,1月 = 0)
    
    Calendar.WEEK_OF_YEAR //公历年份的第几周
    
    Calendar.DATE //和DAY_OF_MONTH一样
    
    Calendar.DAY_OF_MONTH //日份
    
    Calendar.DAY_OF_YEAR //公历年的第几天
    
    Calendar.DAY_OF_WEEK //星期数
    
    Calendar.DAY_OF_WEEK_IN_MONTH //月份的第几周
    Calendar.WEEK_OF_MONTH //月份的第几周
    这两个区别是。
    WEEK_OF_MONTH:是日历式的第几周。比如某月的1号是周日,则该月的2号就是第二周。
    DAY_OF_WEEK_IN_MONTH:是单纯的按照天数来算。比如,一月31天,则一月一共有5周,1-7号为第一周,8-14号为第二周...
    
    Calendar.AM_PM //上午还是下午
    
    Calendar.HOUR //小时数(12小时制 0-11点)
    
    Calendar.HOUR_OF_DAY //小时数(24小时制 0-23点)
    
    Calendar.MINUTE //分钟数
    
    Calendar.SECOND //秒数
    
    Calendar.MILLISECOND //毫秒数
    
    Calendar.ZONE_OFFSET //时区偏移量(单位是毫秒) 
    比如我们在东八区,所以要加8h,所以是 8*60*60*1000 = 28800000
    
    Calendar.FIELD_COUNT //夏令时偏移量(单位是毫秒)
    

    Calendar 是一个比较实用的日历计算,获取日期的工具类。这里也仅仅是把我遇到的我用过的功能做了个小总结。

    如有错误,欢迎指正。

    展开全文
  • public class TestTime { public static void main(String args[])throws ParseException{ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); // 日期格式 Date date =...
    public class TestTime {
        public static void main(String args[])throws ParseException{
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); // 日期格式
            Date date = dateFormat.parse("2019-05-10 12:00:01"); // 指定日期
            Date newDate = addDate(date, 30); // 指定日期加上20天  
            System.out.println(dateFormat.format(date));// 输出格式化后的日期
            System.out.println(dateFormat.format(newDate));
        }
    
       //注意day 必须是long类型 否者会超精度影响结果
        public static Date addDate(Date date,long day) {
            long time = date.getTime(); // 得到指定日期的毫秒数
            day = day*24*60*60*1000; // 要加上的天数转换成毫秒数
            time+=day; // 相加得到新的毫秒数
            return new Date(time); // 将毫秒数转换成日期
        }
    }
    展开全文
  • java 给指定时间加上天数or给当前日期加天数 转自:https://www.cnblogs.com/1246447850qqcom/p/5345251.html 1 package com.test.jedis; 2 3 import java.text.ParseException; 4 import java.text....

    java 给指定时间加上天数or给当前日期加天数

    转自:https://www.cnblogs.com/1246447850qqcom/p/5345251.html

    复制代码

     1 package com.test.jedis;
     2 
     3 import java.text.ParseException;
     4 import java.text.SimpleDateFormat;
     5 import java.util.Calendar;
     6 import java.util.Date;
     7 
     8 public class Test {
     9     
    10     public static void main(String[] args) throws ParseException {
    11         plusDay2(-1);
    12     }
    13 
    14 
    15 /**
    16      * 指定日期加上天数后的日期
    17      * @param num 为增加的天数
    18      * @param newDate 创建时间
    19      * @return
    20      * @throws ParseException 
    21      */
    22     public static String plusDay(int num,String newDate) throws ParseException{
    23         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    24         Date  currdate = format.parse(newDate);
    25         System.out.println("现在的日期是:" + currdate);
    26         Calendar ca = Calendar.getInstance();
    27         ca.add(Calendar.DATE, num);// num为增加的天数,可以改变的
    28         currdate = ca.getTime();
    29         String enddate = format.format(currdate);
    30         System.out.println("增加天数以后的日期:" + enddate);
    31         return enddate;
    32     }
    33     
    34     
    35     //当前日期加上天数:
    36 
    37 
    38 /**
    39      * 当前日期加上天数后的日期
    40      * @param num 为增加的天数
    41      * @return
    42      */
    43     public static String plusDay2(int num){
    44         Date d = new Date();
    45         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    46         String currdate = format.format(d);
    47         System.out.println("现在的日期是:" + currdate);
    48 
    49         Calendar ca = Calendar.getInstance();
    50         ca.add(Calendar.DATE, num);// num为增加的天数,可以改变的
    51         d = ca.getTime();
    52         String enddate = format.format(d);
    53         System.out.println("增加天数以后的日期:" + enddate);
    54         return enddate;
    55     }
    56 
    57 
    58 
    59 }
    展开全文
  • 计算指定日期加天数后的日期

    千次阅读 2017-11-27 19:35:42
    要求:查询指定日期的0时开始,加天数得到日期的23:59:59 /** * 结课日期 * startDate 开课日期 * valueTime  * var stringTime = "2017-11-27 0:0:0"; console.log(lessonEndingDate(stringTime,100)) ...
  • javabean日期加天数

    2013-01-04 17:00:04
    在某个时间上减若干天数, 根据网上搜的javabean了添加了该功能riqiSub(String firstTime,int days){}
  • 因为某个项目需要统计 近1周、近1个月、近6个月 等数据,所以在时间的减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式, Calendar.DATE : 代表天数 Calendar...
  • C# 日期加天数

    千次阅读 2017-12-27 10:52:27
    #region 根据传入的日期,需要增加的天数返回一个字符串 /// /// 根据传入的日期,需要增加的天数返回一个字符串 /// /// /// /// public static string ReTime(string data, int str) {
  • import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;... public static void main(String[] args) { int num = 30; //增加天数 Date date = new Date(); .
  • #include #include #include using namespace std; ...const int MOUTHDAYS[12]{31,28,31,30,31,30,31,31,30,31,30,31};...//返回某年某月天数 int inline MouthDays(int mouth,int year) { if
  • 可接受cstring,sting,COleDateTime类型为参数,计算2个日期的总天数 GetTotleDays(COleDateTime date1, COleDateTime date2) GetTotleDays(CString date1, CString date2) :GetTotleDays(string date1, string date2...
  • 目录 1、比较前后两个时间,相差几年或几月或几...8、指定时间加上指定天数后的日期: 9、当时时间加上指定天数后的日期 10、当前时间-传过来的时间,两者相差几分钟 11、获取上周周一时间 12、获取本周周一时...
  • import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Test { public static void main(String[] args) throws ParseException { Sim...
  • String类型的日期加减一天

    千次阅读 2017-02-27 22:04:30
    String类型的日期加减一天 摘要: String 转Date ,Date转String ,Calendar日历完成日期加日期格式化 特别注意HH必须是大写才是24小时制,否则会转化成12小时制 DateFormat format = new ...
  • 日期加天数

    2019-03-05 11:35:55
    /* 获取时间 */ Date d = new Date(); SimpleDateFormat d3 = new SimpleDateFormat...String sdate = String.valueOf(d3.format(d)); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date dateBu...
  • java date 日期加天数

    千次阅读 2014-10-11 16:01:08
    public static Date addAndSubtractDaysByGetTime(Date dateTime/*待处理的日期*/,int n/*天数*/){ //日期格式 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dd=...
  • java日期减去天数日期Sometimes while working on Java Date, we need to add or subtract some days from it. Here I am providing java example to add days to java date or subtract days to java date object...
  • string str1("2017-08-10"); string str2("2017-08-13"); string strBreak = "-"; //string str1("20170810"); //string str2("20170813"); //string strBreak = ""; CDateDifference dateDiff; int ...
  • 本篇文章主要介绍一下Calendar类的对时间对一些使用方法:java 日期加天数、月数、年数的计算方式, java实现给指定日期加固定小时、天、月,java判断当前日期是星期几,java判断某个时间是否在条件时间之内。...
  • * 对日期字符串加上天数 * @param dateStr 时间格式为yyyy-MM-dd或者yyyy-MM-dd HH:mm:ss * @param field 时间字段 * @param amount 增加的数量 * @return 与输入一致的时间格式 */ static public ...
  • public static void main(String[] args) { Date endTime = new Date(1590319142000L); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(format.format(endTime)); ...
  • import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;... private static final String dateFormat = "yyyy-MM-dd"; /** * 格式化日期 * * @param date * @return .
  • java计算两个字符串日期的相差天数

    千次阅读 2020-01-17 16:09:19
    分别用jdk8和之前的版本进行计算 public class Test { ... public static long dayDiff(String date1, String date2,String format) { if (null == date1 || null == date2) { return -1; } ...
  • 同年不同月:先计算完整月数的天数,即从指定日期的写个月开始计算,计算每个月有多少天,都起来即可;然后计算指定日期到月初和月末的天数。如2019-6-12和2019-2-3,我们先计算3、4、5这三个完整月份的天数,然后...
  • java给指定日期加上天数

    千次阅读 2019-12-31 10:49:17
    添加会员时,需要给会员选择套餐(套餐有3/7/30...给会员续费时,需要给会员选择套餐(套餐有3/7/30/90/365天), 仍然把选择的套餐天数存在day_remaining这个字段,中那么续费日期就是添加续费操作的时间,过期时间...
  • java日期相减获得天数的算法

    千次阅读 2019-01-12 17:31:02
    String now = DateUtil.getCurrentDate(); //获取入库时间 String rukuTime = (String) list1.get(i).get("addDate"); SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd"...
  • jquery简单计算两个日期相差的天数 /* * 计算两个日期相差的天数 * addtime 2020年7月30日 21:16:37 * sDate1 开始日期 yyyy-MM-dd格式 * sDate2 结束日期 yyyy-MM-dd格式 */ function DateDiff(sDate1, sDate...
  • * 当前日期加上天数后的日期 * @param num 为增加的天数 * @return */ public static Date plusDay2(int num){ Date d = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,664
精华内容 16,665
关键字:

日期string加天数