第2章 日期相关类

1.1 Date类
Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间
1.1.1 Date类的构造方法
Date() :创建的是一个表示当前系统时间的Date对象
Date(long date) :根据"指定时间"创建Date对象
1.1.2 案例代码五


package com.itheima_03;

import java.util.Date;

/*
 * Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间
 * System.currentTimeMillis():返回的是当前系统时间,1970-1-1至今的毫秒数
 *
 * 构造方法:
 * Date() :创建的是一个表示当前系统时间的Date对象
Date(long date) :根据"指定时间"创建Date对象

 */
public class DateDemo {
public static void main(String[] args) {
//Date()
//Date d = new Date();
//System.out.println(d);//Thu Aug 26 14:17:28 CST 2049
//System.out.println(d.toLocaleString());
//Date(long date)
Date d2 = new Date(1000 * 60 * 60 * 24);//时区 有时差
System.out.println(d2.toLocaleString());

}
}

1.1.3 Date类常用方法
void setTime(long time)
long getTime()
1.1.4 案例代码六:

 package com.itheima_03;

import java.util.Date;

/*
 * Date的常用用方法
毫秒值 --- Date
设置
返回值是void,参数long
void setTime(long time)
Date(long date)
Date --- 毫秒值
获取
返回long,无参数
long getTime()
 */
public class DateDemo2 {
public static void main(String[] args) {
Date d = new Date();//默认当前系统时间
//d.setTime(1000 * 60 * 60 * 24 * 2);
System.out.println(d.toLocaleString());
System.out.println(d.getTime());//172800000
d.setTime(172800000L);
System.out.println(d.toLocaleString());
}
}

1.2 DateFormat类 & SimpleDateFormat
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat类)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。
我们通过这个类可以帮我们完成日期和文本之间的转换。
继续阅读API,DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。
1.2.1 DateFormat&SimpleDateFormat的常用方法
要格式化一个当前语言环境下的日期也就是日期 -> 文本),要通过下面的方法来完成。DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象。
A:SimpleDateFormat构造方法

B:DateFormat类方法

1.2.2 案例代码七:

package com.itheima_04;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * SimpleDateFormat:
 * 格式化:
 * Date --- String
 * 2049-8-26 2049年8月26日
 * String format(Date date)
 * 解析:
 * String --- Date
 * "2049-8-26"
 * Date parse(String source)
 *
 * 构造方法:
 * SimpleDateFormat() :使用默认的模式进行对象的构建
 * SimpleDateFormat(String pattern) :使用的指定的模式进行对象的构建
 *
 * 注意:Exception in thread "main" java.text.ParseException: Unparseable date: "49年9月26日  下午1:29"
 *     解析的字符串,模式必须和构建对象的模式一样
 *
 */
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
//method();
//method2();
//使用指定的模式进行对象的构建
//1999年9月1日 10:10:10
//4个小姨2个大美眉和2个小弟弟
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//格式化
Date date = new Date();
String s = sdf.format(date);
System.out.println(s);//2049年08月26日 13:39:12

//解析
Date d = sdf.parse("2049年08月26日 13:39:12");
System.out.println(d.toLocaleString());

}

private static void method2() throws ParseException {
//使用指定的模式进行对象的构建
//1999年9月1日
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
//格式化
Date date = new Date();
String s = sdf.format(date);
System.out.println(s);//2049年08月26日
//解析
Date d = sdf.parse("2049年08月26日");
System.out.println(d.toLocaleString());
}

private static void method() throws ParseException {
//使用默认模式进行对象的构建
SimpleDateFormat sdf = new SimpleDateFormat();
//创建日期对象
Date date = new Date();
//格式化 把日期对象转换成字符串
String s = sdf.format(date);
System.out.println(s);//49-8-26 下午1:29
//解析 把字符串转换成日期对象
Date d = sdf.parse("49年9月26日  下午1:29");
System.out.println(d.toLocaleString());
}

}

1.2.3 案例代码八:

package com.itheima_04;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * 需求:求出你来这个世界上多少天
 */
public class SimpleDateFormatTest {
public static void main(String[] args) throws ParseException {
//出生日期
String birthday = "1998-01-01";
//今天日期
String now = "2000-01-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//将字符串转换成日期对象
Date d1 = sdf.parse(birthday);
Date d2 = sdf.parse(now);
//将日期对象转换成long类型
long l = d1.getTime();
long l2 = d2.getTime();
System.out.println((l2 - l) / 1000 / 60 / 60 / 24);
}
}

1.3 Calendar类1.3.1 Calendar类概述
Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:
Calendar类静态方法

Calendar c = Calendar.getInstance(); //返回当前时间
1.3.2 Calendar类常用方法

1.3.3 案例代码九:

package com.itheima_05;

import java.util.Calendar;

/*
 * Calendar:日历,提供了一些操作年月日时的方法
 *
 * 获取
 * 修改
 * 添加
 *
 *
 */
public class CalendarDemo {
public static void main(String[] args) {
//static Calendar getInstance()
Calendar c = Calendar.getInstance();
//void set(int field, int value) :把指定的字段修改成指定的值
//c.set(Calendar.DAY_OF_MONTH, 20);
//void add(int field, int amount): 在指定的字段上加上指定的值
c.add(Calendar.DAY_OF_MONTH, -1);
//int get(int field) // 返回给定日历字段的值
//public static final int YEAR 1
//System.out.println(Calendar.YEAR);
//int year = c.get(1);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");

}
}

原文地址:http://blog.51cto.com/13517854/2095673

时间: 2024-10-25 04:18:41

第2章 日期相关类的相关文章

Android随笔之——Android时间、日期相关类和方法

今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和SimpleDateFormat,今天会稍微提到关于这两个类的用法,下次会找个时间细讲. 一.Time类 在官方的API中,有建议说使用Time代替Calendar,原因不明,据说用Time对CPU的负荷比较小. 在Time中,年月日时分秒的转义字符分别对应%Y%m%d%H%M%S,切记,大小写千万不能写错

java - 工具类 - 包装类,数字相关类, 日期相关类

工具类:java开发者写好的类 1.包装相关类 2.数字相关类 3.日期类 4.字符串 5.集合相关类 6.异常相关类 7.输入输出相关 IO(input/output) 8.线程 9.网络 10.注解 11.GUI 1.包装类: 为了将基本类型也面向对象,所以将他们分装进包装类中 1.byte -- Byte,short --Short,int -- Integer,long -- Long 2.float -- Float,double -- Double 3.char -- Charact

第二十二节(String,StringBuffer,基础类型对应的 8 个包装类,日期相关类、 Random 数字 ,Enum枚举)上

/* 获取当前的毫秒数 1S = 1000毫秒 */ public class DateTest01{ public static void main(String[] args){ long now = System.currentTimeMillis(); System.out.println(now); // 1418662206661 } } /////////////////////////////////////////////////////////////////////////

第二十三节(String,StringBuffer,基础类型对应的 8 个包装类,日期相关类、 Random 数字 ,Enum枚举)下

/* java.lang.String 是字符串类型 注意:只要采用双引号赋值字符串,那么在编译期将会放到方法区中的字符串的常量池里, 如果是运行时对字符串.加或相减会放到堆中(放之前会先验证方法区中是否含有 相同的字符串常量,如果存在,把地址返回,如果不存在,先将字符串常量放到池中,然 后再返回该对象的地址 */ public class StringTest01{ // java的入口 public static void main(String[] args){ // 创建一个“abc”字

日期相关类data,simpledataformat类

(1) (2) 原文地址:https://www.cnblogs.com/Yefudaling/p/12368643.html

【Anroid】第9章 列表视图(1)--ListView相关类及其适配器

分类:C#.Android.VS2015: 创建日期:2016-02-18 一.简介 列表视图(ListView)是Android应用程序中使用最频繁的UI组件,从无处不在短菜单选项列表到冗长的联系人或internet收藏夹列表--都会用它来实现. ListView控件的用法非常灵活,既可以使用内置的视图呈现基本的样式,也可以用自定义视图呈现各种特殊的视觉效果. 要完全掌握Android提供的ListView控件的用法,需要解决下面的问题: (1)如何用Android内置的视图呈现列表视图中的每

(1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合

1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存,此时对内存空间的消耗比较大. 为了节省内存空间希望对字符串内容本身直接进行更改,则需要使用java.lang.StringBuilder类或者java.lang.StringBuffer类. 其中StringBuffer类是从jdk1.0开始存在,是一个线程安全的可变字符序列,效率比较低 其中St

日期操作的相关类

1 时间处理相关类 Date Date date = new Date(); 等同于 Date data = new Date(System.currentTimeMilis); 常用方法 public long getTime() public boolean before(Date date) public boolean after(Date date) public boolean equals(Object obj)//这个方法被重写了 Calendar 时间计算的抽象类 Gregor

第03章(常用工具类)

1 /***************** 2 ***第三章常用工具类 3 *******知识点: 4 **************1.系统相关 5 ******************1.1 System类 6 ******************1.2 Runtime类 7 ******************1.3 输入类 8 **************************1.3.1 Scanner类 9 **************************1.3.2 Buffered