java两个string类型时间的比较

Java中如何比较 String型 日期 ??~

在保证日期格式都一致的情况下,可以使用compareTo()方法:
String d1 = "2014-03-02"; String d2 = "2014-03-01"; System.out.println(d1.compareTo(d2));结果大于0,表示d1晚于d2,等于0则相同,小于0d1早于d2

String怎么去比较时间?不能用String计算时间。你可以这么写,
String time1 ="时间1";
String time2 ="时间2";
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
Date date1 = sd.parse(time1);
Date date2 = sd.parse(time2);
long s1 = date1.getTime() ;//时间的毫秒
long s2 = date2.getTime() + 1* 24 * 60 * 60 * 1000;
double day = (s1-s2)/24/60/60/1000;
if(day>14){
return true;
}else{
return false;
}

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的String类和StringBuffer两个类的区别
答:1、StringBuffer对象的初始化 StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。例如:StringBuffer s = new StringBuffer();这样初始化出的StringBuffer对象是一个空的对象。如果需要创建带有内容的StringBuffer对象,则可以使用:String...

stringbuffer与stringbuilder的区别
答:下面为大家分享了stringbuffer与stringbuilder的区别,希望大家能了解相关内容! StringBuffer和StringBuilder是Java中用于处理字符串的两种常用类,它们在功能上非常相似,但在使用方式和性能上存在一些微妙的差异。 首先,StringBuffer是一个线程安全的类,而StringBuilder则不是。这意味着在多线程环境中,如果你需要修改字符串,应...

编写一个Java应用程序,该程序中有2个类:Trangle、和Circle,分别用来描述...
答:Circle {private double radius;private double perimeter;private double area;public Circle(double radius) {this.radius = radius;this.perimeter = 2 * Math.PI * radius;this.area = Math.PI * radius * radius;}public double getRadius() {return radius;}public double getPerimeter(...

关于java中String类!!!
答:三、不可变类 不可改变的字符串具有一个很大的优点:编译器可以把字符串设置为共享。不可变类String有一个重要的优点-它们不会被共享引用。是这样的,JAVA为了提高效率,所以对于String类型进行了特别的处理---为string类型提供了串池 定义一个string类型的变量有两种方式:string name= "tom ";strin...

Java:用String str = ” “创建两个对象,两个String对象==为啥是false...
答:这是一个基本功的问题,你将==和equals搞混了。==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。你现在是字符串,如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。equals操作表示的两个...

两个String数组 合并成一个数组
答:import java.util.Arrays;//Java中如何把两个数组合并为一个 public class gog { public static void main(String[] args) { String [] str1 = {"J","a","v","a","中"};String [] str2 = {"如","何","把","两","个","数","组","合","并","为","一","个"};int ...

java string是什么类型
答:在讲字符串比较前,必须要了解==和equals的区别:因为java所有类都继承于Object基类,而Object中equals用==来实现,所以equals和==是一样的,都是比较对象地址,java api里的类大部分都重写了equals方法,包括基本数据类型的封装类、String类等。对于String类==用于比较两个String对象的地址,equals则用于...

...Config类,其在com.config包下,具有两个String类型的私有属性username...
答:实验三中有两个要点:一、构造方法中要通过读取控制台数据,给username,password赋值。二、该类要写成单例模式,getInstance()方法中返回的总是同一个对象,简单的实现方式就是在类中定义一个私有静态常量,该常量指向一个对象,在getInstance()中总是返回这个常量。

servlet 两个string 类型的数字怎么做算术运算
答:String shuzi=req.getParameter("shuzi");String shu=req.getParameter("shu");String name=req.getParameter("name");PrintWriter ll=resp.getWriter();int i;i=Integer.parseInt(shuzi);int o;o=Integer.parseInt(shu);if(name.equals("+")){ ll.print(i+o);}if(name.equals("-")){ ll...

java中String类型存储位置
答:编译阶段直接会合成为一个字符串。如string str=”JA”+”VA”,在编译阶段会直接合并成语句String str=”JAVA”,于是会去常量池中查找是否存在”JAVA”,从而进行创建或引用。四、对于final字段,编译期直接进行了常量替换(而对于非final字段则是在运行期进行赋值处理的)。final String str1=”ja”;...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网