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)); }}
阅读全文
0 0
- 17/8/2学习笔记03
- 17/8/2学习笔记01
- 17/8/2学习笔记02
- 17/8/3学习笔记
- 17/2/2 学习笔记
- [笔记]JavaScript学习笔记(2)
- 17/7/31学习笔记03
- 8月17日学习笔记
- less学习笔记--27/8/17
- ATL学习笔记03
- php学习笔记-03
- C#学习笔记03
- AJAX学习笔记03
- LUA 学习笔记 03
- ATL学习笔记03
- ExtJs学习笔记03
- ExtJs学习笔记03
- 传智播客学习笔记03
- MySQL 按照时间查询
- SpringBoot 配置分析(一)
- Python 函数参数引用(传值/传址)/copy/deepcopy
- 指针经典例题
- 请问什么是Servlet上下文?
- 17/8/2学习笔记03
- 笨办法学 Python · 续 练习 5:`cat`
- 触摸屏驱动设计----输入子系统模型
- H5 文件下载
- 一、java运行环境安装之-linux centos6.6安装mysql 5.6安装步骤【rpm安装方式】
- H5通过浏览器录制视屏或音频
- HDU6058 [2017多校联合3] Kanade's sum 我可能是个假链表
- AOJ894 种花【图的搜索+回溯】
- Lambda表达式