gpt4 book ai didi

java - 如何在Java中以日期格式减去日期

转载 作者:行者123 更新时间:2023-12-02 21:11:49 25 4
gpt4 key购买 nike

我一直在努力减去日期格式值。

i / p:

如果选择日期('2016-02-14 20:10:10')-天('2016-02-15 16:00:00')---返回1

•然后它将进入循环。

我必须在里面做一些计算。但是如何单独减去格式中的日期值,它应该返回1,否则就会出现这种情况

谁能帮帮我吗

谢谢

最佳答案

这是三种选择:

import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Date;

public class Test{

public static void main(String[] arguments) {

String sDateString = "2016-02-14 20:10:10";
String eDateString = "2016-02-15 20:10:10";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date startDate = null, endDate = null;
try {
startDate = df.parse(sDateString);
endDate = df.parse(eDateString);
} catch (Exception e) {
e.printStackTrace();
}

//difference in milliseconds
long diff = endDate.getTime() - startDate.getTime();

//difference in days
System.out.println(diff/(3600*24*1000));

///////////////////////////////////////////////////////////////
//Alternatively , use java 8
LocalDate startLocalDate = LocalDateFromDate(startDate);
LocalDate endLocalDate = LocalDateFromDate(endDate);
//difference in days
System.out.println(ChronoUnit.DAYS.between(startLocalDate, endLocalDate));

///////////////////////////////////////////////////////////////
//Alternatively, if the String representation of date is fixed
//you can extract the string representing the day of the month
//not recommended)

//find index 0f last "-"
int sIndex = sDateString.lastIndexOf("-");
//get the day in month substring, remove spaces
String s = sDateString.substring(sIndex+1,sIndex+3).trim();

int eIndex = sDateString.lastIndexOf("-");
String e = eDateString.substring(sIndex+1,sIndex+3).trim();

//difference in days
System.out.println(Integer.parseInt(e) - Integer.parseInt(s));
}

public static LocalDate LocalDateFromDate(Date date) {

Instant instant = Instant.ofEpochMilli(date.getTime());
return LocalDateTime.ofInstant(instant, ZoneId.systemDefault())
.toLocalDate();
}
}

关于java - 如何在Java中以日期格式减去日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40055524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com