我正在尝试计算足球比赛开始前的时间。
这是我所知道的:
我希望能够以天为单位计算从当前时间到此日期的差异。
这是我尝试过的:
String gameDate = "2016-03-19T19:45:00'Z'"
DateFormat apiFormat = new SimpleDateFormat("yyyy-M-dd'T'h:m:s'Z'");
apiFormat.setTimeZone(TimeZone.getTimeZone("CET"));
Date dateOfGame = apiFormat.parse(gameDate);
DateFormat currentDateFormat = new SimpleDateFormat("yyyy-M-dd'T'h:m:s'Z'");
currentDateFormat.setTimeZone(TimeZone.getTimeZone(userTimezone));
Date currentDate = apiFormat.parse(currentDateFormat.format(new Date()));
long lGameDate = dateOfGame.getTime();
long lcurrDate = currentDate.getTime();
long difference = lGameDate - lcurrDate;
Date timeDifference = new Date(difference);
String daysAway = new SimpleDateFormat("d").format(timeDifference);
Integer intDaysAway = Integer.parseInt(daysAway);
Run Code Online (Sandbox Code Playgroud)
您可能想知道为什么我不只是获取游戏日期 (8) 并减去当前日期 (19)。在当前日期是 29 日而比赛日期是下个月的 3 日的极端情况下,我不会这样做。
我想检查两个日期是否超过一周,例如,检查两个日期是否有七天,
此时数据范围应仅在一周内(7天).
我试过这样的事,
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IsDateRangeExceedsWeek
{
public static void main( String[] args )
{
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date fromDate = sdf.parse("2015-05-01");
Date toDate = sdf.parse("2015-05-07");
System.out.println(sdf.format(fromDate));
System.out.println(sdf.format(toDate));
if(fromDate.compareTo(toDate)>0){
System.out.println("From Date should be less than To Date");
} else if(fromDate.compareTo(toDate)==0){
System.out.println("From Date is equal to To Date");
}
}catch(ParseException ex){
ex.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我正在尝试简单地减去日期并获得奇怪的结果.由于某些原因,当我使用SimpleDateFormat格式化它时,有7个额外的小时差异.
package timedemo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Timedemo {
public static void main(String[] args) {
Date start = new Date(); // time right now
Date stop = new Date();
long startTime = start.getTime()-1000; // introduce a second of skew
long stopTime = stop.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
// First one shows up prior to 1970 epoch. Okay, except for 5 hour variance.
// Probably a timezone thing, as I'm in EST (-5).
System.out.println("New date is "+new Date(stopTime …Run Code Online (Sandbox Code Playgroud) 我需要一个函数来找到"yyyy-mm-dd"格式的两个日期之间的差异(天数).
val basedate = "1970-01-01"
val currdate = "2015-02-25"
val diff = currdate - basedate
Run Code Online (Sandbox Code Playgroud)
请建议.
我试图计算两个时间戳之间的时间差,这是代码:
Calendar calendar = Calendar.getInstance();
java.util.Date now = calendar.getTime();
Timestamp currentTimestamp = new Timestamp(now.getTime());
System.out.println("Current\n"+currentTimestamp);
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse("28/02/2015");
Timestamp timestampBefore = new Timestamp(date.getTime());
System.out.println("Before\n"+timestampBefore);
Timestamp calculated = new Timestamp(currentTimestamp.getTime() - timestampBefore.getTime());
System.out.println("Calculated\n"+calculated);
Run Code Online (Sandbox Code Playgroud)
输出:
Current
2015-02-28 12:12:40.975
Before
2015-02-28 00:00:00.0
Calculated
1970-01-01 13:12:40.975
Run Code Online (Sandbox Code Playgroud)
我可以理解为什么它会返回1970-01-01,但为什么它会13:12:40.975多返回 1 小时?
如何计算两个日期之间的差异,以便输出如下(基于此示例):
年:0,月:0,天:0,小时:12,分钟:12,秒:40?
更新:对于低于 1.8 的 java,请查看http://www.joda.org/joda-time/index.html
,对于 java 1.8,请参阅答案。
此处类似的解决方案: Java 8:计算两个 LocalDateTime 之间的差异
我正从数据库中检索两个时间戳(check_in和check_out).我需要比较两者以找出两个时间戳之间经过了多少天.如何在Java中完成?
如果用户输入为2255且2305输出应为10分钟,如何计算24小时内的时差.我有一个想法是将输入分为2个部分,2个数字和2个数字.前2位是小时,是60到几分钟.然后加上第二个2位数,然后计算差异.我不想使用任何日期日历数据类型或API来解决它.谢谢
我试图通过一些例子来区分两个日期,但我没有得到正确的答案.
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
java.util.Date date1 = df.parse("2012-09-14 15:26:14+00");
java.util.Date date2 = df.parse("2012-08-30 15:26:14+00");
long diff = Math.abs(date2.getTime() - date1.getTime());
System.out.println("millisecond="+diff);
Run Code Online (Sandbox Code Playgroud)
我也想要月差,但它没有给我.它给了我不同的天,小时,分钟和秒,但不是月份.我做错了什么?请帮我
编辑:
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
java.util.Date date1 = df.parse("2012-09-30 15:26:14+00");
java.util.Date date2 = df.parse("2012-08-30 15:26:14+00");
long diff = Math.abs(date2.getTime() - date1.getTime());
System.out.println(date2.getTime()+"date2");
System.out.println(date1.getTime()+"date1");
System.out.println("millisecond="+diff);
diff=diff/1000;
System.out.println("second="+diff);
long days=diff/86400;
days=days%86400;
long hours=diff/3600;
hours=hours%3600;
long min=diff/60;
min=min%60;
hours=(hours-(24*days));
String time=days+":"+hours+":"+min;
System.out.println(time);
System.out.println("days="+days+":"+"hours="+hours+":"+"minutes"+min);
Run Code Online (Sandbox Code Playgroud)
这就是我想要做的.
我正在尝试删除数据库中具有早于当前日期10天的Date(java.util.Date)的条目.有没有办法比较日期内的"日"值.不仅要比较哪个Date值更大,还要确保两个Date值之间有X天.
假设我有: 员工具有模型的startDate作为其属性变量和推广模式有promotionDate。我想知道员工在晋升之前工作了多长时间,我必须找到promotionDate 和startDate 之间的差异。如果我将 startDate 作为employee.getStartDate()和promotionDate 作为promotion.getPromotionDate,我怎么能找到在年月日差为任何日期,
任何帮助将非常感激。
更新:我解决了以下问题
String startDate = "2018-01-01";
String promotionDate = "2019-11-08";
LocalDate sdate = LocalDate.parse(startDate);
LocalDate pdate = LocalDate.parse(promotionDate);
LocalDate ssdate = LocalDate.of(sdate.getYear(), sdate.getMonth(), sdate.getDayOfMonth());
LocalDate ppdate = LocalDate.of(pdate.getYear(), pdate.getMonth(), pdate.getDayOfMonth());
Period period = Period.between(ssdate, ppdate);
System.out.println("Difference: " + period.getYears() + " years "
+ period.getMonths() + " months "
+ period.getDays() + " days ");
Run Code Online (Sandbox Code Playgroud)
谢谢你。