SimpleDateFormat的作用
1:将Date 对象转换为特定格式的字符串 format方法
2:将字符串按照特定格式转换为Date对象 parse方法
package day25;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo07 {
public static void main(String[] args) throws ParseException{
String timerStr = "2016-01-13 18:59:01";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse(timerStr);
System.out.println(date);
}
}
DateFormat类
是SimpleDateFormat的父类,创建实例时只需要调用其提供的一个静态方法getInstance(),不要用new 这个就是之前用过的工厂方法
package day25;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class Demo08 {//将Date 对象转换为特定格式的字符串
public static void main(String[] args){
Date date = new Date();
DateFormat format = DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA);
System.out.println(format.format(date));
}
}
Calendar 类
可以方便的进行日期的计算。
获取日期中的信息时考虑了时区等问题
创建实例通常可以使用提供的工厂方法
getInstance() 自动根据当前系统所处地区创建对应时区的实现类
通过Calendar可以方便的设置一个时间
set(int field,int value);
获取Calendar 描述的时间的某个信息
get(int field);
计算时间的方法将给定的时间单位累加给定的值并使当前calendar代表这个时间
add(int field,int value);
package day25;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Demo09 {
public static void main(String[] args){
//创建calendar实例 calendar是抽象类 有子类创建
//创建出来的Calendar实例描述的是当前系统时间
//计算时间
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
//格林威治时间
//calendar = new GregorianCalendar();
//中介
Date date = calendar.getTime();
System.out.println(date);
//输出的时候使用
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
String str = fmt.format(date);
System.out.println(str);
//设置一个时间点
calendar.set(Calendar.YEAR, 1111);
calendar.set(Calendar.MONTH,Calendar.NOVEMBER);
calendar.set(Calendar.DAY_OF_MONTH,11);
System.out.println(calendar.getTime());
calendar.set(Calendar.DAY_OF_MONTH,1111);
System.out.println(calendar.getTime());
calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 11);
calendar.set(Calendar.SECOND, 11);
System.out.println(calendar.getTime());
int week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(week);//国外星期天是第一天
int day = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(day);
int sumOfYear = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);//传入的年的最大值
int sumOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(sumOfYear);
System.out.println(sumOfMonth);
//计算今天是星期几(其他公司不知道,我们公司非常常用用来算星期六和星期天,不开盘)
//计算一年中的星期六和星期天生成不开盘时间表(一定的) 在手动加入假期(这个是不定的)
}
}
package day25;
import java.util.Calendar;
public class CalendarDemo10 {
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,1);
int week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("星期"+(week==1?7:week-1));
}
}