17/8/2学习笔记03

来源:互联网 发布:大平面铣削编程 编辑:程序博客网 时间:2024/06/16 00:18

1.Date

 01.Date:表示特定的瞬间,精确到毫秒。  02.构造方法:    Date():根据当前的默认毫秒值创建日期对象    Date(long date):根据给定的毫秒值创建日期对象    public long getTime():获取时间,以毫秒为单位    public void setTime(long time):设置时间  03.Date    --  String(格式化)     public final String format(Date date)     String -- Date(解析)     public Date parse(String source)     DateForamt:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。    SimpleDateFormat的构造方法:    SimpleDateFormat():默认模式    SimpleDateFormat(String pattern):给定的模式        这个模式字符串该如何写呢?        通过查看API,我们就找到了对应的模式        年 y        月 M         日 d        时 H        分 m        秒 s
public class DateFormatDemo {    public static void main(String[] args) throws ParseException {        // Date -- String        // 创建日期对象        Date d = new Date();        // 创建格式化对象        // SimpleDateFormat sdf = new SimpleDateFormat();        // 给定模式        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");        // public final String format(Date date)        String s = sdf.format(d);        System.out.println(s);        //String -- Date        String str = "2008-08-08 12:12:12";        //在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date dd = sdf2.parse(str);        System.out.println(dd);    }}
04.练习eg01.算一下你来到这个世界多少天? 分析:    A:键盘录入你的出生的年月日    B:把该字符串转换为一个日期    C:通过该日期得到一个毫秒值    D:获取当前时间的毫秒值    E:用D-C得到一个毫秒值    F:把E的毫秒值转换为年        /1000/60/60/24
ublic class MyYearOldDemo {    public static void main(String[] args) throws ParseException {        // 键盘录入你的出生的年月日        Scanner sc = new Scanner(System.in);        System.out.println("请输入你的出生年月日:");        String line = sc.nextLine();        // 把该字符串转换为一个日期        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        Date d = sdf.parse(line);        // 通过该日期得到一个毫秒值        long myTime = d.getTime();        // 获取当前时间的毫秒值        long nowTime = System.currentTimeMillis();        // 用D-C得到一个毫秒值        long time = nowTime - myTime;        // 把E的毫秒值转换为年        long day = time / 1000 / 60 / 60 / 24;        System.out.println("你来到这个世界:" + day + "天");    }}
eg02:日期和字符串相互转换
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * 这是日期和字符串相互转换的工具类 *  */public class DateUtil {    private DateUtil() {    }    /**     * 这个方法的作用就是把日期转成一个字符串     *      * @param d     *            被转换的日期对象     * @param format     *            传递过来的要被转换的格式     * @return 格式化后的字符串     */    public static String dateToString(Date d, String format) {        // SimpleDateFormat sdf = new SimpleDateFormat(format);        // return sdf.format(d);        return new SimpleDateFormat(format).format(d);    }    /**     * 这个方法的作用就是把一个字符串解析成一个日期对象     *      * @param s     *            被解析的字符串     * @param format     *            传递过来的要被转换的格式     * @return 解析后的日期对象     * @throws ParseException     */    public static Date stringToDate(String s, String format)            throws ParseException {        return new SimpleDateFormat(format).parse(s);    }}
import java.text.ParseException;import java.util.Date;/* * 工具类的测试 */public class DateUtilDemo {    public static void main(String[] args) throws ParseException {        Date d = new Date();        // yyyy-MM-dd HH:mm:ss        String s = DateUtil.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");        System.out.println(s);        String s2 = DateUtil.dateToString(d, "yyyy年MM月dd日");        System.out.println(s2);        String s3 = DateUtil.dateToString(d, "HH:mm:ss");        System.out.println(s3);        String str = "2014-10-14";        Date dd = DateUtil.stringToDate(str, "yyyy-MM-dd");        System.out.println(dd);    }}

2.Calendar类

  01.它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。   public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。
    public class CalendarDemo {    public static void main(String[] args) {        // 其日历字段已由当前日期和时间初始化:        Calendar rightNow = Calendar.getInstance(); // 子类对象        // 获取年        int year = rightNow.get(Calendar.YEAR);        // 获取月        int month = rightNow.get(Calendar.MONTH);        // 获取日        int date = rightNow.get(Calendar.DATE);        System.out.println(year + "年" + (month + 1) + "月" + date + "日");    }}
02.public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作。  public final void set(int year,int month,int date):设置当前日历的年月日
    public static void main(String[] args) {        // 获取当前的日历时间        Calendar c = Calendar.getInstance();        // 获取年        int year = c.get(Calendar.YEAR);        // 获取月        int month = c.get(Calendar.MONTH);        // 获取日        int date = c.get(Calendar.DATE);        System.out.println(year + "年" + (month + 1) + "月" + date + "日");        // // 三年前的今天        // c.add(Calendar.YEAR, -3);        // // 获取年        // year = c.get(Calendar.YEAR);        // // 获取月        // month = c.get(Calendar.MONTH);        // // 获取日        // date = c.get(Calendar.DATE);        // System.out.println(year + "年" + (month + 1) + "月" + date + "日");        // 5年后的10天前        c.add(Calendar.YEAR, 5);        c.add(Calendar.DATE, -10);        // 获取年        year = c.get(Calendar.YEAR);        // 获取月        month = c.get(Calendar.MONTH);        // 获取日        date = c.get(Calendar.DATE);        System.out.println(year + "年" + (month + 1) + "月" + date + "日");        System.out.println("--------------");        c.set(2011, 11, 11);        // 获取年        year = c.get(Calendar.YEAR);        // 获取月        month = c.get(Calendar.MONTH);        // 获取日        date = c.get(Calendar.DATE);        System.out.println(year + "年" + (month + 1) + "月" + date + "日");    }}
03.练习   需求:获取任意一年的二月有多少天   分析:    A:键盘录入任意的年份    B:设置日历对象的年月日        年就是A输入的数据        月是2        日是1    C:把时间往前推一天,就是2月的最后一天    D:获取这一天输出即可
public class CalendarTest {    public static void main(String[] args) {        // 键盘录入任意的年份        Scanner sc = new Scanner(System.in);        System.out.println("请输入年份:");        int year = sc.nextInt();        // 设置日历对象的年月日        Calendar c = Calendar.getInstance();        c.set(year, 2, 1); // 其实是这一年的3月1日        // 把时间往前推一天,就是2月的最后一天        c.add(Calendar.DATE, -1);        // 获取这一天输出即可        System.out.println(c.get(Calendar.DATE));    }}
原创粉丝点击