java课堂笔记------日期API
Posted yuer629
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java课堂笔记------日期API相关的知识,希望对你有一定的参考价值。
* 默认创建出来的Date实例表示当前系统时间 Date date = new Date(); * 获取Date内部维护的long值 long l = date.getTime(); * 支持传入long值的构造方法 * 创建的Date就表示该long值所表示的时间 Date now = new Date(1000*60*60*24); * 也可以在现有的Date对象上调用setTime方法 * 将long值传入,使其表示这个时间 date.setTime(1000*60*60*24); * java.text.SimpleDateFormat * 该类的作用是使用给定的字符串格式在 * Date与String之间进行相互转换。 * 对于该类,需要掌握: * 1:会写日期格式字符串 * 2:记住两个转换方法(String->Date,Date->String) *构造的时间格式 yyyy-MM-dd HH:mm:ss SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); * String format(Date date) * 按照创建SimpleDateFormat是指定的日期格式, * 将当前给定的date对象表示的时间转换为字符串。 String str = sdf.format(now); * Date parse(String str) * 将给定的字符串按照该日期格式解析为Date对象并返回 String str = "2008-08-08 20:08:00"; SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(str); * java.util.Calendar * 日历类,用于操作时间。 * 常用的是格里高利历法(阳历) * 默认创建出来的Calendar实现类的实例表示 * 当前系统时间 * Calendar的getInstance可以根据当前系统所在 * 地区创建合适的实现类,通常是格里高利历法 Calendar calendar = Calendar.getInstance(); * 不能直观看到具体表示的时间。 System.out.println(calendar); * calendar->Date * Date getTime() * Calendar提供的getTime方法可以将其表示的 * 时间以Date形式返回。 Date date = calendar.getTime(); * Date->Calendar * void setTime(Date date) * Calendar提供了一个setTime()方法,可以使当前 * Calendar表示给定的date所表示的时间。 calendar.setTime(date); * Calendar提供了一个set方法,允许我们 * 对当前Calendar的各个时间分量进行单独 * 设定。 * 设置各个时间分量, * 使其表示:2008/08/08 20:08:08 * 需要注意,设置了某个时间分量的值可能会 * 影响其他时间分量的值。 * 例如:设置了年,月,日可能会将星期几改变。 //设置年份 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, 2008); * 设置月份 月份有常量对应,若使用数字从0开始。 * 即:0表示1月,1表示2月。。。 calendar.set(Calendar.MONTH, 7); //设置日 calendar.set(Calendar.DAY_OF_MONTH, 8); //设置时 calendar.set(Calendar.HOUR_OF_DAY, 20); //设置分 calendar.set(Calendar.MINUTE, 8); //设置秒 calendar.set(Calendar.SECOND, 0); * Calendar提供了一个get方法,可以获取 * 给定的时间分量所对应的值 Calendar calendar = Calendar.getInstance(); //获取年 int year = calendar.get(Calendar.YEAR); //获取月 int month = calendar.get(Calendar.MONTH)+1; //获取日 int day = calendar.get(Calendar.DATE); //获取星期 int week = calendar.get(Calendar.DAY_OF_WEEK)-1; System.out.println("星期:"+(week==1?7:week-1)); * Calendar提供了一个方法,可以获取给定的时间分量 * 在当前Calendar表示的日期中所允许的最大值。 * 查看当月的月底 int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println("当月共:"+days+"天"); * 今年共多少天? days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR); System.out.println("今年共:"+days+"天"); * Calendar提供了一个add方法,用来计算时间 * void add(int field,int value) * 对指定的时间分量加上给定的值,若value是负数,则 * 是减去指定的值 Calendar calendar = Calendar.getInstance(); * 查看3年零2个月又25天后是哪天? calendar.add(Calendar.YEAR, 3); calendar.add(Calendar.MONTH, 2); calendar.add(Calendar.DAY_OF_YEAR, 25); //减去4年 calendar.add(Calendar.YEAR, -4);
* 默认创建出来的Date实例表示当前系统时间 Date date = new Date(); * 获取Date内部维护的long值 long l = date.getTime(); * 支持传入long值的构造方法 * 创建的Date就表示该long值所表示的时间 Date now = new Date(1000*60*60*24);
* 也可以在现有的Date对象上调用setTime方法 * 将long值传入,使其表示这个时间 date.setTime(1000*60*60*24); * java.text.SimpleDateFormat * 该类的作用是使用给定的字符串格式在 * Date与String之间进行相互转换。 * 对于该类,需要掌握: * 1:会写日期格式字符串 * 2:记住两个转换方法(String->Date,Date->String)
*构造的时间格式 yyyy-MM-dd HH:mm:ss SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); * String format(Date date) * 按照创建SimpleDateFormat是指定的日期格式, * 将当前给定的date对象表示的时间转换为字符串。 String str = sdf.format(now); * Date parse(String str) * 将给定的字符串按照该日期格式解析为Date对象并返回 String str = "2008-08-08 20:08:00"; SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(str);
* java.util.Calendar * 日历类,用于操作时间。 * 常用的是格里高利历法(阳历) * 默认创建出来的Calendar实现类的实例表示 * 当前系统时间 * Calendar的getInstance可以根据当前系统所在 * 地区创建合适的实现类,通常是格里高利历法 Calendar calendar = Calendar.getInstance();
* 不能直观看到具体表示的时间。 System.out.println(calendar); * calendar->Date * Date getTime() * Calendar提供的getTime方法可以将其表示的 * 时间以Date形式返回。Date date = calendar.getTime();
* Date->Calendar * void setTime(Date date) * Calendar提供了一个setTime()方法,可以使当前 * Calendar表示给定的date所表示的时间。 calendar.setTime(date);
* Calendar提供了一个set方法,允许我们 * 对当前Calendar的各个时间分量进行单独 * 设定。
* 设置各个时间分量, * 使其表示:2008/08/08 20:08:08 * 需要注意,设置了某个时间分量的值可能会 * 影响其他时间分量的值。 * 例如:设置了年,月,日可能会将星期几改变。//设置年份Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR, 2008); * 设置月份 月份有常量对应,若使用数字从0开始。 * 即:0表示1月,1表示2月。。。calendar.set(Calendar.MONTH, 7);//设置日calendar.set(Calendar.DAY_OF_MONTH, 8);//设置时calendar.set(Calendar.HOUR_OF_DAY, 20);//设置分calendar.set(Calendar.MINUTE, 8);//设置秒calendar.set(Calendar.SECOND, 0);
* Calendar提供了一个get方法,可以获取 * 给定的时间分量所对应的值 Calendar calendar = Calendar.getInstance();//获取年int year = calendar.get(Calendar.YEAR);//获取月int month = calendar.get(Calendar.MONTH)+1;//获取日int day = calendar.get(Calendar.DATE);//获取星期int week = calendar.get(Calendar.DAY_OF_WEEK)-1;System.out.println("星期:"+(week==1?7:week-1)); * Calendar提供了一个方法,可以获取给定的时间分量 * 在当前Calendar表示的日期中所允许的最大值。 * 查看当月的月底int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);System.out.println("当月共:"+days+"天"); * 今年共多少天?days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);System.out.println("今年共:"+days+"天");
* Calendar提供了一个add方法,用来计算时间 * void add(int field,int value) * 对指定的时间分量加上给定的值,若value是负数,则 * 是减去指定的值
Calendar calendar = Calendar.getInstance(); * 查看3年零2个月又25天后是哪天? calendar.add(Calendar.YEAR, 3); calendar.add(Calendar.MONTH, 2); calendar.add(Calendar.DAY_OF_YEAR, 25); //减去4年 calendar.add(Calendar.YEAR, -4);
以上是关于java课堂笔记------日期API的主要内容,如果未能解决你的问题,请参考以下文章