系列文章目录
一、按照指定的日期/时间创建Date对象
有时,需要获得指定日期的Date对象,这个指定的日期或者时间可能不是当前的时间。下面讲解两种获取指定日期/时间的Date对象的方法:
package cc.bcy;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class DateTest
{
public static void main(String[] args) throws ParseException
{
/*第一种方法*/
// 获得2009年06月01日 的Date对象
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Date myDate1 = dateFormat1.parse("2009-06-01");
System.out.println(myDate1);
// 获得2010年9月13日22点36分01秒 的Date对象
DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date myDate2 = dateFormat2.parse("2010-09-13 22:36:01");
System.out.println(myDate2);
System.out.println();
/*第二种方法*/
//获取2014年2月11日的Date对象
Calendar myCalendar = new GregorianCalendar(2014, 2, 11);
Date myDate3 = myCalendar.getTime();
System.out.println(myDate3);
//获取2014年2月11日 22:36:01的Date对象
Calendar myCalendar2 = new GregorianCalendar(2014, 2, 11,22,36,01);
Date myDate4 = myCalendar2.getTime();
System.out.println(myDate4);
}
}
把当前时间格式化为字符串
package cc.bcy;
import java.text.*;
import java.util.*;
public class DateTest
{
public static void main(String[] args) throws ParseException
{
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
Date d= new Date();
String str = sdf.format(d);
System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
Date d1= new Date();
String str1 = sdf1.format(d1);
System.out.println("当前时间通过 yyyy-MM-dd 格式化后的输出: "+str1);
}
}
/*
当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: 2019-05-30 11:03:15 267
当前时间通过 yyyy-MM-dd 格式化后的输出: 2019-05-30
*/
Calendar的简单操作:
add方法,在原日期上增加年/月/日
set方法,直接设置年/月/日
package cc.bcy;
import java.text.*;
import java.util.*;
public class DateTest
{
public static void main(String[] args) throws ParseException
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
Date now = c.getTime();
// 当前日期
System.out.println("当前日期: " + sdf.format(now));
// 下个月的今天
c.add(Calendar.MONTH, 1);
System.out.println("下个月的今天: " +sdf.format(c.getTime()));
// 去年的今天
c.setTime(now);
c.add(Calendar.YEAR, -1);
System.out.println("去年的今天: " +sdf.format(c.getTime()));
// 上个月的第三天
c.setTime(now);
c.add(Calendar.MONTH, -1);
c.set(Calendar.DATE, 3);
System.out.println("上个月的第三天: " +sdf.format(c.getTime()));
}
}
/*
当前日期: 2019-05-30 11:14:41
下个月的今天: 2019-06-30 11:14:41
去年的今天: 2018-05-30 11:14:41
上个月的第三天: 2019-04-03 11:14:41
*/