Date和DateFormat

Date和DateFormat

Date类:由于千年虫,不用于计算,只表示时间

Java中用于描述日期的类

Date内部维护一个long值,这个值表示的是1970-1-1 00:00:00到Date所表示的日期的毫秒值

//创建一个Date实例,默认的构造方法创建的日期代表当前系统时间

Date date = new Date();

//输出date对象

System.out.println(date);

long time = date.getTime();

System.out.println(time);

date.setTime(time+1000*60*60*24);

System.out.println(date);

//一般不用,千年虫问题

int year = date.getYear();

//Calendar类

//日历类:Calendar不存在千年虫问题,并且可以非常方便的计算日期

//使用现象:需求:我想知道16天以后是哪一天,若用传统的date描述怎么计算,我们要计算毫秒数值

//需求:得知下一月1号的日期

//通过Calendar的静态方法获取一个实例,该方法会自行解决时区,帮我们创建Calendar实例

//该方法会根据当前系统所在地区来决定时区

//实际上根据不同的地区,Calendar有若干个子类实现,而Calendar本身是抽象类,不能被实例化

//构造出来表示当前时间的日历类

Calendar calendar =Calendar.getInstance();

Date now = calendar.getTime();//获取日历所描述的日期

System.out.println(now);

//设置日历为2013年

calendar.set(Calendar.YEAR,2013);

//设置日历表示11月 月是从0开始的所以要减1

calendar.set(Calendar,MONTH,10);

Date date = calendar.getTime();

System.out.println(date);

//设置11月15号

//DAY_OF_MONTH 月里面的天  日

//DAY_OF_WEEK 星期里的天   星期几

//DAY_OF_YEAR 年里面的天

calendar.set(Calendar.DAY_OF_MONTH,15);

System.out.println(date);

calendar.add(calendar.DAY_OF_YEAR,22);

System.out.println(calendar.getTime());

calendar.add(Calendar.DAY_OF_YEAR,-5);

System.out.println(calendar.getTime());

int year = calendar.get(Calendar.YEAR);

int month = calendar.get(Calendar.MONTH);

int day = calendar.get(Calendar.DAY);

System.out.println(year+"年"+month+"月"+"日");

//SimpleDateFormat类 日期转化

//该类的作用是可以很方便的在字符串和日期类之间相互转化

//我们可以将一个描述日期的字符串:2012-01-01转化为一个Date对象

//同样,我们也可以将一个描述日期的Date对象转化为2012-01-01这样的字符串来表示

//这里我们在字符串与日期类间相互转化是需要一些约束的

//2012-01-01转化为一个Date对象

//SimpleDateFormat用来描述日期的格式

//yyyy-MM-dd

//创建一个SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

//创建一个日期格式字符串

String dateFormat = "2013-05-14";

Date date = sdf.parse(dateFormat);

System.out.println(date);

Date now = new Date(0;

String nowStr = sdf.format(now);

System.out.println(nowStr);

SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd");

nowStr = format2.format(now);

System.out.println(nowStr);

posted @ 2017-11-14 14:11  登登码站  阅读(92)  评论(0编辑  收藏  举报