`
Luob.
  • 浏览: 1592746 次
  • 来自: 上海
社区版块
存档分类
最新评论

Java 如何判断一个时间是否是昨天

    博客分类:
  • Java
阅读更多
/**
	 * @author LuoB.
	 * @param oldTime 较小的时间
	 * @param newTime 较大的时间 (如果为空   默认当前时间 ,表示和当前时间相比)
	 * @return -1 :同一天.    0:昨天 .   1 :至少是前天.
	 * @throws ParseException 转换异常
	 */
	private int isYeaterday(Date oldTime,Date newTime) throws ParseException{
		if(newTime==null){
			newTime=new Date();
		}
               //将下面的 理解成  yyyy-MM-dd 00:00:00 更好理解点
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	    String todayStr = format.format(newTime);
	    Date today = format.parse(todayStr);
	    //昨天 86400000=24*60*60*1000 一天
	    if((today.getTime()-oldTime.getTime())>0 && (today.getTime()-oldTime.getTime())<=86400000) {
            return 0;
        }
	    else if((today.getTime()-oldTime.getTime())<=0){ //至少是今天
	    	return -1;
	    }
	    else{ //至少是前天
	    	return 1;
	    }
		
	}
1
6
分享到:
评论
5 楼 Luob. 2015-04-23  
ningv 写道
ningv 写道
lz你的逻辑有误。例如昨天凌晨1:00跟今天17:00之间的差距(秒)大于86400000,但仍属于相差一天。

放上我的代码:
public static boolean oneDayDifference(Date oldDate, Date newDate) {
Calendar oldCal = Calendar.getInstance();
Calendar newCal = Calendar.getInstance();

oldCal.setTime(oldDate);
newCal.setTime(newDate);
return Math.abs(newCal.get(Calendar.DAY_OF_YEAR) - oldCal.get(Calendar.DAY_OF_YEAR)) == 1;
}




@Test
public void test16() throws Exception{
Calendar cal=Calendar.getInstance(); //2015-04-23
cal.set(2015, 3, 23);
System.out.println(cal.get(Calendar.DAY_OF_YEAR)); //113

Calendar cal1=Calendar.getInstance();
cal1.set(2014, 3, 22);
System.out.println(cal1.get(Calendar.DAY_OF_YEAR)); // 112
//这两个时间 是 昨天吗 ???
}
4 楼 ningv 2015-04-21  
ningv 写道
lz你的逻辑有误。例如昨天凌晨1:00跟今天17:00之间的差距(秒)大于86400000,但仍属于相差一天。

放上我的代码:
public static boolean oneDayDifference(Date oldDate, Date newDate) {
Calendar oldCal = Calendar.getInstance();
Calendar newCal = Calendar.getInstance();

oldCal.setTime(oldDate);
newCal.setTime(newDate);
return Math.abs(newCal.get(Calendar.DAY_OF_YEAR) - oldCal.get(Calendar.DAY_OF_YEAR)) == 1;
}
3 楼 ningv 2015-04-21  
lz你的逻辑有误。例如昨天凌晨1:00跟今天17:00之间的差距(秒)大于86400000,但仍属于相差一天。
2 楼 Luob. 2012-08-30  
lhw121747346 写道
楼主写错了吧,如果两个日期在同一天,相差几个小时,也会判断成昨天!

不会的
程序的意思是:
获得要比较的时间的毫秒数,和 今天的 00:00:00时刻的毫秒数相比,

比如:oldtime: 2012-08-08 12:12:12 ==》毫秒:A

      newtime:  2012-08-08 00:00:00 ==》毫秒:B
那么
A  一定大于 B 的因此 就是上面说的 至少是今天
1 楼 lhw121747346 2012-08-30  
楼主写错了吧,如果两个日期在同一天,相差几个小时,也会判断成昨天!

相关推荐

    java获取今天、昨天、近一周、本周、本月时间段

    java获取今天、昨天、近一周、近两周、近三周、近一月、近两月、近三月、近半年、本周、上周、本月、上月时间段

    java判断今天,昨天,前天,不能用秒间隔的简单实例

    本资源提供了一个Java示例,用于判断今天、昨天、前天,并格式化相应的时间字符串。下面将对该示例进行详细的解释和分析。 首先,需要了解 Java中的日期和时间处理。Java提供了多种日期和时间处理类,包括Date、...

    java8 localtime 毫秒与时间互转 获取前一天六点钟时间

    java8 localtime 毫秒与时间互转 获取前一天六点钟时间

    基于Java语言编写的Spring Boot时间工具类方法封装

    当前的日期、根据指定日期得获取对应年份的所有月的日期、获取月初时间、获取月末时间、获取当天的起始时间、获取当天的结束时间、获取昨天的开始时间、获取昨天的结束时间、当前季度的开始时间、当前季度的结束时间...

    Java DateUtil.java日期时间操作类源代码.rar

    dd-YY、MM/dd/YY",并输出为正常的格式yyyy-MM-dd、将字符串数组使用指定的分隔符合并成一个字符串、获取日期字符串中的中文时间表示字符串、获取日期字符串的中文日期时间表示、获取当前日期的字符串等。

    java_显示当前时间

    java_显示当前时间,里边包括了详细时间,当前的年月人时分秒和上午下午。

    获取当天昨天上周当月当年的起始和结束时间

    获取当天、昨天、上周、当月、上个月 当年等起始和结束时间

    Java中如何使用日期对象

    `java.text.DateFormat`是一个抽象类,用于以特定的格式转换日期和时间。它提供了静态方法来获取预定义的日期和时间格式器,如`getDateInstance()`和`getDateTimeInstance()`。这些方法可以根据不同的样式(如SHORT...

    操作日期的java包

    1. **DateTime类**:Joda-Time的核心类,代表一个精确到纳秒的时间点,与系统时区无关。它提供了许多构造函数,可以方便地创建DateTime对象,例如从日期、时间戳或特定年月日时分秒等创建。 2. **Period和Duration*...

    java获取时间 x分钟前 x天前 今天xx:xx 的函数

    自己写了一个函数,代码很简单,仅供学习使用,还望多提意见 /** * 格式化列表上的 发生时间 * @param occurTime 事件发生时间 * @return 格式化好的时间 如3分钟前 5天前 */ 微博上列表显示时,总已醒目的...

    日期工具Java类

    Calendar类在处理日期和时间的计算中非常重要,它提供了一个日历字段的抽象表示。通过Calendar类的实例,可以进行日期时间的加减、获取和设置日历字段的值等操作。例如,要获取当前时间的上一周,可以使用Calendar....

    java获取昨天日期字符串的方法

    以下是一个名为`Test`的类,其中包含一个静态方法`getLastDayInfo`,该方法接收一个表示当前日期的字符串参数,并返回昨天的日期字符串: ```java public class Test { /** * 获取昨天的日期字符串 * * @param...

    判断今天与昨天,其它日期

    判断是否为昨天主要依赖于日期前八位(年月日)是否相同以及第九位(即月份中的日期)是否相差一天。具体来说: - 前八位相同表示年月日相同; - 第九位相差一天,即前一天的日期应该比今天的日期小1。 代码中...

    Java日期时间常见面试题及答案

    Java日期时间处理是Java开发中的核心技能之一,面试中经常被问及。下面将详细解释这些常见面试题涉及的知识点。 1. **Java日期时间类**:Java标准库中的日期时间类,如`java.util.Date`、`java.util.Calendar`以及...

    java获取指定的开始时间,当天开始、当天结束、昨天开始、昨天结束、本周开始、本周结束、上周开始、上周结束时间

    java获取指定的开始时间,当天开始、当天结束、昨天开始、昨天结束、本周开始、本周结束、上周开始、上周结束时间

    2014年Java最全面试题以及答案.

    6. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 一个Java源文件中可以包含多个公共类(public class),但只能有一个公共类,并且文件名必须与该公共类的类名相同。如果一个源文件中没有...

    java utils 工具类

    总结来说,`PropertiesUtil`是Java开发中的一个实用工具类,它简化了`.properties`配置文件的管理,提供了读取、写入、修改和遍历配置的便捷方法。通过合理设计和使用这类工具类,开发者可以更加高效地处理配置信息...

    JAVA 综合面试题.pdf

    7. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?: 一个".java"源文件中可以包括多个类,但只能有一个公共类,且文件名必须与公共类名相同。 8. 排序都有哪几种方法?请列举。用 JAVA 实现...

    日期的工具类UtilDate日期计算比较润年获取转化判断

    判断一个年份是否为润年,一般规则是能被4整除但不能被100整除,或者能被400整除。在Java中,我们可以创建一个`Date`对象,然后转换成`Calendar`对象,通过获取年份并进行上述逻辑判断来确定。 4. **日期获取和...

    Java处理日期时间的方法汇总

    Java提供了多种方法来操作日期时间,其中`java.util.Calendar`是一个核心的类。本文将详细介绍如何使用`Calendar`类进行日期时间的处理。 首先,`Calendar`类是一个抽象类,用于表示日期和时间。它提供了将特定的...

Global site tag (gtag.js) - Google Analytics