当前位置: 技术问答>java相关
新手请教老问题,关于日期的转换,还请各位不怕麻烦。谢谢。
来源: 互联网 发布时间:2015-09-11
本文导语: 我现在得到两个输入的字符串日期,比如 String dt1="2002-09-08"; String dt2="2002-09-15"; 由于需要我要先dt1加上10天后,比较是否等于dt2,如果等,就不做处理, 如果不等,则要将dt1加上2天,dt2减去3天,取这两个的时间段。 ...
我现在得到两个输入的字符串日期,比如
String dt1="2002-09-08";
String dt2="2002-09-15";
由于需要我要先dt1加上10天后,比较是否等于dt2,如果等,就不做处理,
如果不等,则要将dt1加上2天,dt2减去3天,取这两个的时间段。
我知道要用
SimpleDateFormat eDate= new SimpleDateFormat("yyyy-MM-dd");
java.util.Date edt=eDate.parse(endDate);
但我不知道怎样去比较两个日期是否相等,或不等,
然后有应该怎么才能加个10天。
请各位给个明确帮助。谢谢!!
String dt1="2002-09-08";
String dt2="2002-09-15";
由于需要我要先dt1加上10天后,比较是否等于dt2,如果等,就不做处理,
如果不等,则要将dt1加上2天,dt2减去3天,取这两个的时间段。
我知道要用
SimpleDateFormat eDate= new SimpleDateFormat("yyyy-MM-dd");
java.util.Date edt=eDate.parse(endDate);
但我不知道怎样去比较两个日期是否相等,或不等,
然后有应该怎么才能加个10天。
请各位给个明确帮助。谢谢!!
|
SimpleDateFormat eDate = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date edt = eDate.parse(endDate);
加上10天:
edt = new Date(edt.getTime() + 10 * 1000 * 60 * 60 * 24);
比较两个Date是否相等,可以用Date的equals()方法,也可以直接用getTime()方法得到两个日期对应的long型值,然后进行比较。
java.util.Date edt = eDate.parse(endDate);
加上10天:
edt = new Date(edt.getTime() + 10 * 1000 * 60 * 60 * 24);
比较两个Date是否相等,可以用Date的equals()方法,也可以直接用getTime()方法得到两个日期对应的long型值,然后进行比较。
|
import java.util.*;
/**
*
*
*
*
* @author Mench
* @version 1.0
*/
public class TestMain {
public TestMain() {
}
public void test(){
Calendar cal1=Calendar.getInstance();
Calendar cal2=Calendar.getInstance();
cal1.set(2002,8,8);
cal2.set(2002,8,15);
System.out.println(cal1.getTime());
System.out.println(cal2.getTime());
cal1.add(Calendar.DAY_OF_MONTH,10);
if(cal1.after(cal2)||cal1.before(cal2)){
cal1.add(Calendar.DAY_OF_MONTH,2);
cal2.add(Calendar.DAY_OF_MONTH,-3);
System.out.println("相等");
}else{
System.out.println("相等");
}
System.out.println(cal1.getTime());
System.out.println(cal2.getTime());
//cal.add(cal1.DAY_OF_MONTH,10);
/*
我现在得到两个输入的字符串日期,比如
String dt1="2002-09-08";
String dt2="2002-09-15";
由于需要我要先dt1加上10天后,比较是否等于dt2,如果等,就不做处理,
如果不等,则要将dt1加上2天,dt2减去3天,取这两个的时间段。
我知道要用
SimpleDateFormat eDate= new SimpleDateFormat("yyyy-MM-dd");
java.util.Date edt=eDate.parse(endDate);
但我不知道怎样去比较两个日期是否相等,或不等,
然后有应该怎么才能加个10天。
*/
}
public static void main(String[] args) {
TestMain testMain = new TestMain();
testMain.test();
}
}
/**
*
Title: menchTitle
*
Description: menchTemplet
*
Copyright: Copyright (c) 2002
*
Company:
* @author Mench
* @version 1.0
*/
public class TestMain {
public TestMain() {
}
public void test(){
Calendar cal1=Calendar.getInstance();
Calendar cal2=Calendar.getInstance();
cal1.set(2002,8,8);
cal2.set(2002,8,15);
System.out.println(cal1.getTime());
System.out.println(cal2.getTime());
cal1.add(Calendar.DAY_OF_MONTH,10);
if(cal1.after(cal2)||cal1.before(cal2)){
cal1.add(Calendar.DAY_OF_MONTH,2);
cal2.add(Calendar.DAY_OF_MONTH,-3);
System.out.println("相等");
}else{
System.out.println("相等");
}
System.out.println(cal1.getTime());
System.out.println(cal2.getTime());
//cal.add(cal1.DAY_OF_MONTH,10);
/*
我现在得到两个输入的字符串日期,比如
String dt1="2002-09-08";
String dt2="2002-09-15";
由于需要我要先dt1加上10天后,比较是否等于dt2,如果等,就不做处理,
如果不等,则要将dt1加上2天,dt2减去3天,取这两个的时间段。
我知道要用
SimpleDateFormat eDate= new SimpleDateFormat("yyyy-MM-dd");
java.util.Date edt=eDate.parse(endDate);
但我不知道怎样去比较两个日期是否相等,或不等,
然后有应该怎么才能加个10天。
*/
}
public static void main(String[] args) {
TestMain testMain = new TestMain();
testMain.test();
}
}
|
我用了一个比较笨的方法,你按照这个在改一下,就能实现了:
import java.util.Date;
import java.text.SimpleDateFormat;
String dt1="2002-09-08";
String dt2="2002-09-15";
SimpleDateFormat eDate= new SimpleDateFormat("yyyy-MM-dd");
java.util.Date sdt=eDate.parse(dt1);
Date edt = eDate.parse(dt2);
if(((sdt.getTime()+864000000)/86400000)==edt.getTime()/86400000){
System.out.println((sdt.getTime()+864000000)/86400000);
System.out.println("zhang");
}else{
System.out.println(edt.getTime()/86400000);
System.out.println("hong");
System.out.println((sdt.getTime()+864000000)/86400000);
}
import java.util.Date;
import java.text.SimpleDateFormat;
String dt1="2002-09-08";
String dt2="2002-09-15";
SimpleDateFormat eDate= new SimpleDateFormat("yyyy-MM-dd");
java.util.Date sdt=eDate.parse(dt1);
Date edt = eDate.parse(dt2);
if(((sdt.getTime()+864000000)/86400000)==edt.getTime()/86400000){
System.out.println((sdt.getTime()+864000000)/86400000);
System.out.println("zhang");
}else{
System.out.println(edt.getTime()/86400000);
System.out.println("hong");
System.out.println((sdt.getTime()+864000000)/86400000);
}
|
用 java.util.Calendar 对象的 roll() 方法。
|
看看java.util.Calendar 的帮助,你就能找到答案,而且会很有长进。