最近遇到一道题目,算出 20 天后是周几?并用 2012-01-20 的方式输出。在Eclipse上动手做了一下。
1,首先,应该获取当前时间。两种方法:
(1)Calender方法
Calendar c=Calendar.getInstance();
System.out.println(c.getTime());
(2)Date方法
Date d=new Date();
System.out.println(d);
2,考虑如何获取20天后的时间
(1)使用Calender方法
Calendar c=Calendar.getInstance();
c.add(Calendar.DATE,20);
System.out.println(c.getTime());
(2)使用Date计算方法
Date d = new Date();
long t1 = d.getTime()+(20*24*60*60*1000);
Date date = new Date(t1);
System.out.println(date);
此时我们得到了20天后是周几的答案
接下来要对时间显示方式进行改造,也是两种方法:
(1)SimpleDateFormat方法
SimpleDateFormat format1=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//设置日期格式
String time1=format1.format(c.getTime());//此处c.getTime()也可以写为date
System.out.println(time1);
(2)时间戳Timestamp方法
DateFormat format2=DateFormat.getDateTimeInstance();//设置输出时间的格式,getDateTimeInstance()自动为yyyy-MM-dd hh:mm:ss格式
String str=format2.format(t1);//格式化时间,返回字符串类型
Date ts=(Date)Timestamp.valueOf(str);//利用时间戳把字符串转化成时间
System.out.println(format2.format(ts));
此时就得到了答案。
写在一起大家去复制验证~
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class test {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
c.add(Calendar.DATE,20);
SimpleDateFormat format1=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String time1=format1.format(c.getTime());
System.out.println(c.getTime());
System.out.println(time1);
System.out.println("--------------------------------------");
Date d = new Date();
long t1 = d.getTime()+(20*24*60*60*1000);
Date date = new Date(t1);
System.out.println(date);
DateFormat format2=DateFormat.getDateTimeInstance();//设置输出时间的格式,getDateTimeInstance()自动为yyyy-MM-dd hh:mm:ss格式
String str=format2.format(t1);//格式化时间,返回字符串类型
Date ts=(Date)Timestamp.valueOf(str);//利用时间戳把字符串转化成时间
System.out.println(format2.format(ts));
}
}
直接上控制台截图