int x = (获得的天数) SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");//格式化日期 long timeMillis = System.currentTimeMillis();//获取当前毫秒数 long earlyTime = timeMillis-x*24*60*60*1000;//计算x天前的毫秒数 java.util.Date d = new java.util.Date(earlyTime); String dateStr = sdf.format(d);
Date date = new Date(); date.setTime(date.getTime() - (1 * 24 * 60 * 60 * 1000)); Calendar time = Calendar.getInstance(); time.setTime(date); System.out.println(time.getTime().toLocaleString()); 把其中(1 * 24 * 60 * 60 * 1000)的1替换你要输入的n
import java.util.Calendar; import java.util.Date; import java.text.SimpleDateFormat; public class DataOperate { private static SimpleDateFormat format = new SimpleDateFormat( "yyyy.MM.dd HH:mm:ss"); public static void main(String[] args) throws Exception{ String dateStr="2009.03.05 14:54:26"; Date date=format.parse(dateStr);
int x=10;//要减的天数
long ts=date.getTime()-x*24*60*60*1000; Date dueDate=new Date(ts);//这就是目标时间 System.out.println(format.format(dueDate));//格式化打印 } }
我用了两种方法 一个是Date类(里得很多方法都过期了) 一个是Calendar类(推荐). Date类: Calendar c = Calendar.getInstance();// 底层是单例写出来的 SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy.MM.dd HH:mm:ss"); int x = 1; //几天后 Date date = new Date(); date.setDate(date.getDate()-x); //获取月份中的某一天 ,减去你天数,再把月份中的某一天改成X天之前的 System.out.println(dateFormat.format(date)); Calendar类: Calendar c = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy.MM.dd HH:mm:ss"); int x = 1;//几天后 Date date = new Date(); int y= c.get(c.DAY_OF_MONTH);//月份中的某一天 y-=x; c.set(c.DAY_OF_MONTH, y);//再把月份中的某一天改成X天之前的 System.out.println(dateFormat.format(c.getTime())); //c.getTime()把Calendar转化成Date
这样就可以了:import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar;import javax.swing.JOptionPane;public class Test { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); GregorianCalendar calendar = (GregorianCalendar) Calendar.getInstance(); int x =Integer.parseInt(JOptionPane.showInputDialog(null,"请输入X的值:"));
calendar.add(Calendar.DATE, -x); Date time = calendar.getTime(); System.out.println(sdf.format(time)); }}
用Calendar全搞定,只要查看一下Calendar的API就知道了
package test;import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;import javax.swing.JOptionPane;public class Date2StringBeforeSeveralDays { public String date2StringBefore(int beforeDays) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); Calendar c = Calendar.getInstance(); c.add(Calendar.DAY_OF_MONTH, -beforeDays); Date d = c.getTime(); String s = sdf.format(d); return s; } public static void main(String[] args) { String inputNumString = JOptionPane.showInputDialog("plz input num"); int inputNum = Integer.parseInt(inputNumString); Date2StringBeforeSeveralDays d = new Date2StringBeforeSeveralDays(); String result = d.date2StringBefore(inputNum); JOptionPane.showMessageDialog(null, result); } }
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); int day = 10; Calendar cal = Calendar.getInstance(); int today = cal.get(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, (today-day));
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;public class Test { /**
* @param args
*/
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat();
GregorianCalendar calendar=(GregorianCalendar) Calendar.getInstance();
Scanner input=new Scanner(System.in);
int num=input.nextInt();
calendar.add(Calendar.DATE, -num);
Date time=calendar.getTime();
System.out.println(time.toLocaleString());
}}将控制台输入转换成输入框就OK了!
package my.util;import java.text.SimpleDateFormat;
import java.util.Calendar;public class Test1 {
public static void main(String[] args) {
Test1 t1=new Test1();
//假设X=10,去调用方法
int x=0;
System.out.println(t1.getMyDate(x));
} /*
* 输入一个天数,得到几天前得日期
*/
public String getMyDate(int day){
try{
//用SimpleDateFormat定义您需要得日期格式。
//其中yyyy表示4位数得年份,MM表示2位数得月份,后面依次为 日、时、分、秒。
SimpleDateFormat sm=new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
//利用Calendar类得Set方法将天数重新设置为X天前得天数
Calendar ca=Calendar.getInstance();
ca.set(Calendar.DAY_OF_YEAR, ca.get(Calendar.DAY_OF_YEAR)-day);
//最后用SimpleDateFormat实例进行格式转换,其中ca.getTime()是将calendar转换称Date类型
return sm.format(ca.getTime());
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
import java.util.Calendar;public class Test1 {
public static void main(String[] args) {
Test1 t1=new Test1();
//假设X=10,去调用方法
int x=0;
System.out.println(t1.getMyDate(x));
} /*
* 输入一个天数,得到几天前得日期
*/
public String getMyDate(int day){
try{
//用SimpleDateFormat定义您需要得日期格式。
//其中yyyy表示4位数得年份,MM表示2位数得月份,后面依次为 日、时、分、秒。
SimpleDateFormat sm=new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
//利用Calendar类得Set方法将天数重新设置为X天前得天数
Calendar ca=Calendar.getInstance();
ca.set(Calendar.DAY_OF_YEAR, ca.get(Calendar.DAY_OF_YEAR)-day);
//最后用SimpleDateFormat实例进行格式转换,其中ca.getTime()是将calendar转换称Date类型
return sm.format(ca.getTime());
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
怎么答复两次了?
sorry!
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");//格式化日期
long timeMillis = System.currentTimeMillis();//获取当前毫秒数
long earlyTime = timeMillis-x*24*60*60*1000;//计算x天前的毫秒数
java.util.Date d = new java.util.Date(earlyTime);
String dateStr = sdf.format(d);
date.setTime(date.getTime() - (1 * 24 * 60 * 60 * 1000)); Calendar time = Calendar.getInstance(); time.setTime(date); System.out.println(time.getTime().toLocaleString());
把其中(1 * 24 * 60 * 60 * 1000)的1替换你要输入的n
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DataOperate {
private static SimpleDateFormat format = new SimpleDateFormat(
"yyyy.MM.dd HH:mm:ss");
public static void main(String[] args) throws Exception{
String dateStr="2009.03.05 14:54:26";
Date date=format.parse(dateStr);
int x=10;//要减的天数
long ts=date.getTime()-x*24*60*60*1000;
Date dueDate=new Date(ts);//这就是目标时间
System.out.println(format.format(dueDate));//格式化打印
}
}
Date类:
Calendar c = Calendar.getInstance();// 底层是单例写出来的 SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy.MM.dd HH:mm:ss");
int x = 1; //几天后
Date date = new Date();
date.setDate(date.getDate()-x); //获取月份中的某一天 ,减去你天数,再把月份中的某一天改成X天之前的
System.out.println(dateFormat.format(date)); Calendar类:
Calendar c = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy.MM.dd HH:mm:ss");
int x = 1;//几天后
Date date = new Date();
int y= c.get(c.DAY_OF_MONTH);//月份中的某一天
y-=x;
c.set(c.DAY_OF_MONTH, y);//再把月份中的某一天改成X天之前的
System.out.println(dateFormat.format(c.getTime())); //c.getTime()把Calendar转化成Date
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;import javax.swing.JOptionPane;public class Test { public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
GregorianCalendar calendar = (GregorianCalendar) Calendar.getInstance(); int x =Integer.parseInt(JOptionPane.showInputDialog(null,"请输入X的值:"));
calendar.add(Calendar.DATE, -x);
Date time = calendar.getTime();
System.out.println(sdf.format(time));
}}
import java.util.Calendar;
import java.util.Date;import javax.swing.JOptionPane;public class Date2StringBeforeSeveralDays {
public String date2StringBefore(int beforeDays) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -beforeDays);
Date d = c.getTime();
String s = sdf.format(d);
return s;
} public static void main(String[] args) {
String inputNumString = JOptionPane.showInputDialog("plz input num");
int inputNum = Integer.parseInt(inputNumString);
Date2StringBeforeSeveralDays d = new Date2StringBeforeSeveralDays();
String result = d.date2StringBefore(inputNum);
JOptionPane.showMessageDialog(null, result);
}
}
int day = 10;
Calendar cal = Calendar.getInstance();
int today = cal.get(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, (today-day));
String string = sdf.format(cal.getTime());10天前的当前时间