java两个时间比较
Ⅰ java中如何比较两个时间字符串的大小
一种思路:用 SimpleDateFormat 来处理,可以转成long形式的,那是1970年1月1日起到现在的毫秒数。可以直接比大小了。
另外一种思路:因为你这里是用的补全格式(7月写成了07),那么可以直接字面转了比较
public static void main(String[] _s) {
String str1 = "2010-07-16 12:00:00";
long longstr1 = Long.valueOf(str1.replaceAll("[-\\s:]",""));
System.out.println(longstr1);
}
这个结果是20100716120000,就这个意思,直接字面转成long形式后比
Ⅱ java怎么比较两个日期(年和月)的大小
1、获取日期的年月
functionintgetYearMonth(Datedt){//传入日期
Calendarcal=Calendar.getInstance();
cal.setTime(dt.getTime());//设置时间
intyear=cal.get(Calendar.YEAR);//获取年份
intmonth=cal.get(Calendar.MONTH);//获取月份专
returnyear*100+month;//返回年份乘以100加上月份的值,因属为月份最多2位数,所以年份乘以100可以获取一个唯一的年月数值
}
2、比较日期
intd1=getYearMonth(newDate());
intd2=getYearMonth(newDate());
if(d1==d2){//年月相等
}elseif(d1>d2){//d1比d2晚
}else{//d1比d2早
}
Ⅲ java 怎么比较两个时间是否相等
一般时间比较是比较它的值。
一般时间表现为两种形式:
时间戳:例,1506484528223(到秒),表示回到1900年的秒数
格式化答时间:例,20170927120000 (就是格式化时间yyyyMMddHHmmss一类的)
比较时间时要转换为同一种形式比较才有意义。以下供参考,我不知道你exetime的格式:
//其中的格式按照你exetime的格式来写
Stringtimes=newSimpleDateFormat("yyyyMMddHHmmss").format(newDate());
System.out.println(times.substring(0,10));
System.out.println(exetime.substring(0,10));
//转换相同形式后用equals判断就好了
System.out.println(times.substring(0,10).equals(exetime.substring(0,10)));
Ⅳ 多个时间如何比较 用java写!
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
/**
* @param args
*/
public static void main(String[] args){
String date="2099-12-12";
DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
Date d1;
try {
d1 = dateformat.parse(date);
Date d2=new Date();
if(d1.before(d2)){
System.out.println("字符串的时间早于电脑时间!");
}
if(d1.after(d2)){
System.out.println("字符串的时间晚于电脑时间!");
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
鄙视为分而来的人 !
Ⅳ java 日期怎么比较大小
例子:
String beginTime=new String("2017-06-09 10:22:22");
String endTime=new String("2017-05-08 11:22:22");
直接用Date自带方法before()和after()比较
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);
System.out.println(sd1.before(sd2));
System.out.println(sd1.after(sd2));
用String的compareTo()方法:
Integer i=beginTime.compareTo(endTime);
System.out.println(i);
返回正值是代表左侧日期大于参数日期,反之亦然,日期格式必须一致
转成date格式换成秒数比较秒数大小,getTime()方法
Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);
long long1 =sd1.getTime()
long long2= sd2.getTime()
(5)java两个时间比较扩展阅读:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Ⅵ java中怎么比较两个日期的大小
JDK问道里 这三个方法都可以。
after:当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚,才返回 true;否内则返回
false。
before:早容
compareTo:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0
的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。
Ⅶ 如何用java比较两个时间或日期的大小
首先
按照一定的格式输入两个日期的字符串
然后用simpledateformat类转换成date实例date1,
date2
然后
calendar
cal1
=
calendar.getinstance();
calendar
cal2
=
calendar.getinstance();
cal1.settime(date1);
cal2.settime(date2);
这样你就有版了两个表示权所输入日期的calendar实例了
calendar可以做很多事
比如用cal1.after(cal2)或者cal1.before(cal2)或者cal1.equals(cal2)或者cal1.compareto(cal2)来比较两个日期时间先后
比如cal.get(calendar.year)可以得到表示该日期年份的整数
同理cal.get(calendar.month)可以得到月份
甚至可以用cal.gettimeinmillis()得到表示该日期的毫秒数
有了这些方法,简单的计算之后就可以得到需要的相差的信息
如果楼主是来求现成的源代码的-
-
我没有
Ⅷ java两个string类型时间的比较
string计算不准确,最好转化为日期计算。
我写了一个函数:
//package com.color.program;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CompareTime {
public static void main(String[] args){
String t1 = "2008-05-09";
String t2 = "2008-5-13";
try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
}
/**
* 取得两个时间段的时间间隔
* @author color
* @param t1 时间1
* @param t2 时间2
* @return t2 与t1的间隔天数
* @throws ParseException 如果输入的日期格式不是0000-00-00 格式抛出异常
*/
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保证第二个时间一定大于第一个时间
if(c1.after(c2)){
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)-c1.get(Calendar.DAY_OF_YEAR);
for(int i=0;i<betweenYears;i++){
c1.set(Calendar.YEAR,(c1.get(Calendar.YEAR)+1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}
}
运行结果:4
Ⅸ java 中怎么比较两个时间相差的秒数
方法:
java 计算两个时间相差可以用getTime()来获得两个时间的毫秒数,可以这样计算得出两个时间的秒数的相差如下:
public int calLastedTime(Date startDate) {long a = new Date().getTime();long b = startDate.getTime();int c = (int)((a - b) / 1000);return c;}
(9)java两个时间比较扩展阅读:
1、通过Date类来获取当前时间
Date day=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(day));
2、通过System类中的currentTimeMillis方法来获取当前时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(df.format(System.currentTimeMillis()));
3、通过Calendar类来获取当前时间
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);
4、 通过Date类来获取当前时间
Date date = new Date();
String year = String.format("%tY", date);
String month = String.format("%tB", date);
String day = String.format("%te", date);
System.out.println("今天是:"+year+"-"+month+"-"+day);