Hou*_*ana 73
您不必使用日历.你可以玩时间戳:
Date d = initDate();//intialize your date to any date
Date dateBefore = new Date(d.getTime() - n * 24 * 3600 * 1000 l ); //Subtract n days
Run Code Online (Sandbox Code Playgroud)
更新 不要忘记在1000年底之前添加"l".
请考虑以下警告:
1000*60*60*24
在闰秒,夏令时等情况下,向java日期添加毫秒将在很长一段时间内向原始日期添加零天或两天.如果您需要100%确定只添加一天,则此解决方案不是使用的解决方案.
Kor*_*gen 49
这将减去当前日期的十天(在Java 8之前):
int x = -10;
Calendar cal = GregorianCalendar.getInstance();
cal.add( Calendar.DAY_OF_YEAR, x);
Date tenDaysAgo = cal.getTime();
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Java 8,则可以使用新的Date&Time API(http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html):
LocalDate tenDaysAgo = LocalDate.now().minusDays(10);
Run Code Online (Sandbox Code Playgroud)
要将新类型转换为旧类型,反之亦然,请参阅:在java.time.LocalDateTime和java.util.Date之间进行转换
我找到了这个完美的解决方案并且可能很有用,您可以直接获取您想要的格式:
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -90); // I just want date before 90 days. you can give that you want.
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); // you can specify your format here...
Log.d("DATE","Date before 90 Days: " + s.format(new Date(cal.getTimeInMillis())));
Run Code Online (Sandbox Code Playgroud)
谢谢.
归档时间: |
|
查看次数: |
113873 次 |
最近记录: |