当前位置:首页 » 编程语言 » java日期的加减

java日期的加减

发布时间: 2022-06-10 01:54:10

java 两个日期相减的怎么做

对已日期相减,最高效的做法就是将二者都转换成毫秒,相减之后再根据你的需求进行单位转换,比如你想显示相差的秒数,就除以1000,以此类推,翠花,上代码:

/*随便选两个时间*/
Stringd1="2015-04-17";
Stringd2="2015-06-17";

/*先转成毫秒并求差*/
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
longm=sdf.parse(d2).getTime()-sdf.parse(d1).getTime();

/*根据你的需求进行单位转换*/
System.out.println("相差毫秒数:"+m);
System.out.println("相差天数:"+(m/(1000*60*60*24)));

要注意的地方:

时间格式可能有很多种,比如20150611或者2015年6月11日等等。所以你需要以对应的方式来初始化SimpleDateFormat对象。

例如20150611,就要写成:

SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");

SimpleDateFormat类是非线程安全的,所以在高并发下需要加同步锁,否则会出现灵异事件。

❷ java日历加减

public static void main(String[] args) {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dateInstance = df.parse("1980-01-01");
Date dateInstance2 = df.parse("1981-01-01");
while (!dateInstance2.equals(dateInstance)) {
System.out.println(df.format(dateInstance));
dateInstance.setDate(dateInstance.getDate() + 1);
}
} catch (ParseException e) {
e.printStackTrace();
}

}

【你的错误】

i * 24 * 60 * 60 * 1000 根据自动类型提升原则,计算结果为一个 int 型。

更正 i * 24 * 60 * 60 * 1000L 即可【只要有一个类型是 long 就 OK 了】

【检查方法】

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
java.util.Date dateInstance = df.parse("1980-01-01");
for (int i = 0; i < 365; i++) {
System.out.println(df.format(new Date(dateInstance.getTime() + i * 24 * 60 * 60 * 1000)));
System.out.println(dateInstance.getTime());
System.out.println((i * 24 * 60 * 60 * 1000));
System.out.println(dateInstance.getTime() + (i * 24 * 60 * 60 * 1000));
System.out.println();
}
} catch (ParseException e) {
e.printStackTrace();
}

【输出结果】

... ...

1980-01-25
315504000000
2073600000
317577600000

1979-12-07
315504000000
-2134967296 【问题就出自这一步】
313369032704

... ...

【自己试一下吧】

❸ java已知日期格式yymmdd怎么实现加一天减一天

//对Date类型数据的天数进行加减运算,num可以是负值
public
static
Date
changeDate(Date
date,int
num)
throws
ParseException
{

Calendar
c=Calendar.getInstance();

c.setTime(date);

c.add(Calendar.DATE,
num);

return
formatChange(c.getTime());
}

//将Date类型数据转为yyyyMMdd格式
public
static
Date
formatChange(Date
date)
throws
ParseException
{

return
new
SimpleDateFormat("yyyyMMdd").parse(new
SimpleDateFormat("yyyyMMdd").format(date));
} //执行入口
public
static
void
main(String[]
args)
throws
ParseException
{

System.out.println(changeDate(new
Date(),-15));
}

❹ java如何计算日期的加减

第一种,知道日期,如2019091109144
String str=txnTime;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date dt = null;
try {
dt = sdf.parse(str);
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.YEAR,-1);//日期减1年
rightNow.add(Calendar.MONTH,3);//日期加3个月
rightNow.add(Calendar.DAY_OF_YEAR,10);//日期加10天
rightNow.add(Calendar.SECOND,60);//日期加60秒天
Date dt1=rightNow.getTime();
String reStr = sdf.format(dt1);
System.out.println(reStr);
第二种,自己获取时间,格式化输出计算加减
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date now = new Date();
long time = 60*1000;//60秒
Date afterDate = new Date(now .getTime() + time);//60秒后的时间
Date beforeDate = new Date(now .getTime() - time);//60秒前的时间
System.out.println(sdf.format(afterDate ));

❺ 求java日期加减运算代码几处注释2 代码已有且正确

add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
c2.add(Calendar.DATE, -1);-1的意思是减去一天的意思如果是+1的话,就是加一天的意思

❻ 用java实现日期类的加减

import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.*;
public class CalendarExample {
private static void CalendarTimemethod() {
Date date = Calendar.getInstance().getTime();
System.out.println("Current date and time is: " + date);
System.out.println();
}
private static void SimpleDateFormatmethod() {
Calendar date = Calendar.getInstance();
SimpleDateFormat dateformatter = new SimpleDateFormat(
"E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current date and time in simple date format: "
+ dateformatter.format(date.getTime()));
System.out.println();
}
private static void Adddates() {
System.out.println("Performing operations on calendar dates.");
// Get today's date
Calendar date = Calendar.getInstance();
Calendar cldr;
SimpleDateFormat dateformatter = new SimpleDateFormat(
"E yyyy.MM.dd 'at' hh:mm:ss a zzz");
cldr = (Calendar) date.clone();
cldr.add(Calendar.DAY_OF_YEAR, -(365 * 2));
System.out.println("Before two years it was: "
+ dateformatter.format(cldr.getTime()));
cldr = (Calendar) date.clone();
cldr.add(Calendar.DAY_OF_YEAR, +5);
System.out.println("After five years it will be: "
+ dateformatter.format(cldr.getTime()));
System.out.println();
}
private static void DateDifference() {
System.out.println("Difference between two dates");
Date startDate1 = new GregorianCalendar(2005, 02,
25, 14, 00).getTime();
Date endDate1 = new Date();
;
long diff = endDate1.getTime() - startDate1.getTime();
System.out.println(" Difference between " + endDate1);
System.out.println(" and " + startDate1 + " is " + (diff /
(1000L * 60L * 60L * 24L)) + " days.");
System.out.println();
}
private static void Getcalendermethods() {
System.out.println("Various get methods of the calendar class:");
Calendar calender = Calendar.getInstance();
System.out.println("Year : "
+ calender.get(Calendar.YEAR));
System.out.println("Month : "
+ calender.get(Calendar.MONTH));
System.out.println("Day of Month : "
+ calender.get(Calendar.DAY_OF_MONTH));
System.out.println("Day of Week : "
+ calender.get(Calendar.DAY_OF_WEEK));
System.out.println("Day of Year : "
+ calender.get(Calendar.DAY_OF_YEAR));
System.out.println("Week of Year : "
+ calender.get(Calendar.WEEK_OF_YEAR));
System.out.println("Week of Month : "
+ calender.get(Calendar.WEEK_OF_MONTH));
System.out.println("Day of the Week in Month : "
+ calender.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("Hour : " + calender.get(Calendar.HOUR));
System.out.println("AM PM : " + calender.get(Calendar.AM_PM));
System.out.println("Hour of the Day : "
+ calender.get(Calendar.HOUR_OF_DAY));
System.out.println("Minute : " + calender.get(Calendar.MINUTE));
System.out.println("Second : " + calender.get(Calendar.SECOND));
System.out.println();
}
public static void main(String[] args) {
System.out.println();
CalendarTimemethod();
SimpleDateFormatmethod();
Adddates();
DateDifference();
Getcalendermethods();
}
}

以上答案有林氏120烫伤中心提供。稍微再修改下就可以

❼ 求java对日期加减运算代码几处注释 代码已有且正确

int y = (int)((Toolkit.getDefaultToolkit().getScreenSize().getHeight() - this.getHeight())/2); 让窗口居中

new SubDialog(date, 1); //0 1都是什么作用
根据按钮的不同来定一个标签,btn1为0,btn2为1,0为一种dialog“类型”,1为另一种dialog“类型”,这个是根据他的词意来的

第三个;
add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
c2.add(Calendar.DATE, -1);-1的意思是减去一天的意思如果是+1的话,就是加一天的意思

热点内容
外网访问黑群晖 发布:2025-02-08 05:45:59 浏览:557
中央存储服务器公司地址 发布:2025-02-08 05:38:48 浏览:821
服务器如何查询表空间的文件路径 发布:2025-02-08 05:38:00 浏览:162
宏基4741g哪个配置好 发布:2025-02-08 05:37:56 浏览:809
混合料运输车的配置是如何计算的 发布:2025-02-08 05:31:35 浏览:293
android红包插件 发布:2025-02-08 05:31:34 浏览:365
ea服务器怎么连接 发布:2025-02-08 05:16:45 浏览:463
更加密更改 发布:2025-02-08 05:15:20 浏览:786
仓储资源配置都需要开展哪些任务 发布:2025-02-08 05:13:51 浏览:676
探针数据库 发布:2025-02-08 05:13:35 浏览:80