java中实现以时间为判断条件将其对应的数据相加

java中实现以时间为判断条件将其对应的数据相加,第1张

Calendar cal = CalendargetInstance();
calsetTime(new Date());
calroll(CalendarSECOND, 15);
以上是简单的实例代码 将秒加上15
Calendar可以对时间进行宽松解释 假设你加上15后超过60 会自动进位
有一点需要注意的是在对日期进行加减的时候请使用DAY_OF_YEAR 不要使用DAY_OF_MONTH
具体请参考API文档

第一种,知道日期,如2019091109144
String str=txnTime;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date dt = null;
try {
dt = sdfparse(str);
} catch (ParseException e) {
// TODO 自动生成的 catch 块
eprintStackTrace();
}
Calendar rightNow = CalendargetInstance();
rightNowsetTime(dt);
rightNowadd(CalendarYEAR,-1);//日期减1年
rightNowadd(CalendarMONTH,3);//日期加3个月
rightNowadd(CalendarDAY_OF_YEAR,10);//日期加10天
rightNowadd(CalendarSECOND,60);//日期加60秒天
Date dt1=rightNowgetTime();
String reStr = sdfformat(dt1);
Systemoutprintln(reStr);
第二种,自己获取时间,格式化输出计算加减
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date now = new Date();
long time = 601000;//60秒
Date afterDate = new Date(now getTime() + time);//60秒后的时间
Date beforeDate = new Date(now getTime() - time);//60秒前的时间
Systemoutprintln(sdfformat(afterDate ));

用Calendar对象
Date dt = new Date();
Calendar c = CalendargetInstance();
csetTime(dt);
cadd(CalendarDATE, 1);
dt = cgetTime();

如果要取出
int getDate()
已过时。 从 JDK 11 开始,由 Calendarget(CalendarDAY_OF_MONTH) 取代。
int getDay()
已过时。 从 JDK 11 开始,由 Calendarget(CalendarDAY_OF_WEEK) 取代。
int getHours()
已过时。 从 JDK 11 开始,由 Calendarget(CalendarHOUR_OF_DAY) 取代。
int getMinutes()
已过时。 从 JDK 11 开始,由 Calendarget(CalendarMINUTE) 取代。
int getMonth()
已过时。 从 JDK 11 开始,由 Calendarget(CalendarMONTH) 取代。
int getSeconds()
已过时。 从 JDK 11 开始,由 Calendarget(CalendarSECOND) 取代。
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
如果要相加
void setDate(int date)
已过时。 从 JDK 11 开始,由 Calendarset(CalendarDAY_OF_MONTH, int date) 取代。
void setHours(int hours)
已过时。 从 JDK 11 开始,由 Calendarset(CalendarHOUR_OF_DAY, int hours) 取代。
void setMinutes(int minutes)
已过时。 从 JDK 11 开始,由 Calendarset(CalendarMINUTE, int minutes) 取代。
void setMonth(int month)
已过时。 从 JDK 11 开始,由 Calendarset(CalendarMONTH, int month) 取代。
void setSeconds(int seconds)
已过时。 从 JDK 11 开始,由 Calendarset(CalendarSECOND, int seconds) 取代。
void setTime(long time)
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
void setYear(int year)
已过时。 从 JDK 11 开始,由 Calendarset(CalendarYEAR, year + 1900) 取代。
最好用Calendar类代替,更方便

Date d = new Date();               
Calendar cal = CalendargetInstance();
calsetTime(d);                      
                 
//2个月前                                             
caladd ( calMONTH, -2 );                              
//2天前                                            
caladd ( calDAY_OF_MONTH, -2 );                       
//2年后                                                
caladd ( CalendarYEAR, 2 );                           
//打印                                              
Systemoutprint ( calget ( calYEAR ) + "-");            
Systemoutprint ( calget ( calMONTH ) + 1+ "-" );       
Systemoutprintln ( calget ( CalendarDAY_OF_MONTH ) );

用 Calendar 就行。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13409250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存