概述
Date日期类
Date类概述和构造方法
Date代表了一个特点的时间,精确到毫秒
方法名 | 说明 |
---|---|
public Date() | 分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒 |
public Date(long date) | 分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数 |
import java.util.Date;
// public Date() 分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
//public Date(long date)分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
public class DateDemo {
public static void main(String[] args) {
// public Date() 分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
Date d1 = new Date();
System.out.println(d1);
// public Date(long date)分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
long date = 1000 * 60 * 60;// 毫秒--分钟--小时
Date d2 = new Date(date);
System.out.println(d2);
// CST是中国时间 加了八个小时时区 所以是九点
}
}
运行结果:
Date类的常用方法
方法名 | 说明 |
---|---|
public long getTime() | 获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值 |
public void setTime(long time) | 设置时间,给的是毫秒 |
import java.util.Date;
//Date类的常用方法
// public long getTime() 获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
//public void setTime(long time)设置时间,给的是毫秒
public class DateDemo2 {
public static void main(String[] args) {
// 创建日期对象
Date d = new Date();
// public long getTime() 获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值|
System.out.println(d.getTime());
System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");
// public void setTime(long time)设置时间,给的是毫秒
System.out.println(d);
long time = 1000 * 60 * 60;
d.setTime(time);
System.out.println(d);
long time1 = System.currentTimeMillis();// 系统获取当前时间
d.setTime(time1);
System.out.println(d);
}
}
运行结果:
SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方法格式化和解析日期
日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从‘A’到‘Z’以及从‘a’到‘z’引导的字母被解释为表示日期或者字符串的组建的模式字母
常用的模式字母及对应关系如下:
- y——年
- M——月
- d——日
- H——时
- m——分
- s——秒
SimpleDateFormat的构造方法
方法名 | 说明 |
---|---|
publici SimpleDateFormat() | 构造一个SimpleDateFormat,使用默认模式和日期格式 |
public SimpleDateFormat(String pattern) | 构造一个SimpleDateFormat使用给定的模式和默认的日期格式 |
SimpleDateFormat格式化和解析日期
- 格式化(从Date到String)
public final format(Date date):将日期格式化成日期/时间字符串 - 解析(从String到Date)
public Date parse(String source):从给定字符串的开始解析文本以生成日期
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
//构造方法
//publici SimpleDateFormat() 构造一个SimpleDateFormat,使用默认模式和日期格式
//public SimpleDateFormat(String pattern)构造一个SimpleDateFormat使用给定的模式和默认的日期格式
// 1. 格式化(从Date到String)
//public final format(Date date):将日期格式化成日期/时间字符串
//2. 解析(从String到Date)
//public Date parse(String source):从给定字符串的开始解析文本以生成日期
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
// 格式化(从Date到String)
Date d = new Date();
// 无参构造
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(d);
System.out.println(s);// 2021/7/26 下午10:43
// 带参构造
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// 年月日时分秒
String s2 = sdf2.format(d);
System.out.println(s2);// 2021年07月26日 22:45:34
System.out.println("-----------");
// 解析(从String到Date)
// public Date parse(String source):从给定字符串的开始解析文本以生成日期
String ss = "2021-07-26 22:47:47";
// ParseException
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 此处的年月日要改成---
Date dd = sdf3.parse(ss);
System.out.println(dd);
}
}
运行结果:
案例:日期工具类
需求:定义一个日期工具类(DateUtils),包含两个方法:把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,然后定义一个测试类(DateDemo),测试日期工具类的方法
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
//日期工具类
//需求:定义一个日期工具类(DateUtils),包含两个方法:
//把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,
//然后定义一个测试类(DateDemo),测试日期工具类的方法
public class DateUtils {
// 构造方法私有,成员方法静态
private DateUtils() {
}
// 把日期转换为指定格式的字符串
public static String dateToString(Date date, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);// 按照指定格式创建sdf对象
String s = sdf.format(date);// 调用format把日期转换为字符串
return s;
}
// 把字符串解析为指定格式的日期
public static Date stringToDate(String s, String format) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date date = sdf.parse(s);
return date;
}
}
import java.text.ParseException;
import java.util.Date;
//测试类
public class DateDemo {
public static void main(String[] args) throws ParseException {
// 创建日期对象
Date d = new Date();
String s1 = DateUtils.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");
System.out.println(s1);
Date date = DateUtils.stringToDate(s1, "yyyy年MM月dd日 HH:mm:ss");
System.out.println(date);
}
}
运行结果:
Calendar类概述
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar提供了一个类方法getlnstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化:
Calendar rightNow=Calendar.gerlnstance();
import java.util.Calendar;
//Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
//Calendar提供了一个类方法getlnstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化:
//Calendar rightNow=Calendar.gerlnstance();
public class CalendatDemo {
public static void main(String[] args) {
// 获取对象
Calendar c = Calendar.getInstance();// 多态的形式得到对象
// System.out.println(c);
// public int get(int field)
// 通过get方法传日历字段,可以获得相应的值
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;// 月是从0开始的,要加1
int date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
}
}
运行结果:
Calendar的常用方法
方法名 | 说明 |
---|---|
public int get(int field) | 返回给定日历字段的值 |
public abstract void add(int field,int amount) | 根据日历的规则,将指定的时间量添加或减去给定的日历字段 |
public final void set(int year,int month,int date) | 设置当前日历的年月日 |
import java.util.Calendar;
//public int get(int field)
//返回给定日历字段的值
//public abstract void add(int field,int amount)
//根据日历的规则,将指定的时间量添加或减去给定的日历字段
//public final void set(int year,int month,int date)
//设置当前日历的年月日
public class CalendarDemo2 {
public static void main(String[] args) {
// 获取对象
Calendar c = Calendar.getInstance();// 多态的形式得到对象
// 通过get方法传日历字段,可以获得相应的值
// int year = c.get(Calendar.YEAR);
// int month = c.get(Calendar.MONTH) + 1;// 月是从0开始的,要加1
// int date = c.get(Calendar.DATE);
// System.out.println(year + "年" + month + "月" + date + "日");
// public abstract void add(int field,int amount)
// 根据日历的规则,将指定的时间量添加或减去给定的日历字段
// 需求1:三年前的今天
// c.add(Calendar.YEAR, -3);
// int year = c.get(Calendar.YEAR);
// int month = c.get(Calendar.MONTH) + 1;// 月是从0开始的,要加1
// int date = c.get(Calendar.DATE);
// System.out.println(year + "年" + month + "月" + date + "日");
// 需求2:十年后的5天前
// c.add(Calendar.YEAR, 10);
// c.add(Calendar.DATE, -5);
// int year = c.get(Calendar.YEAR);
// int month = c.get(Calendar.MONTH) + 1;// 月是从0开始的,要加1
// int date = c.get(Calendar.DATE);
// System.out.println(year + "年" + month + "月" + date + "日");
// public final void set(int year,int month,int date)
// 设置当前日历的年月日
c.set(2048, 11, 11);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;// 月是从0开始的,要加1
int date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
}
}
运行结果:
案例:二月天
需求:获取任意一年的二月有多少天
import java.util.Calendar;
import java.util.Scanner;
//案例:二月天
//需求:获取任意一年的二月有多少天
public class CalendarTest {
public static void main(String[] args) {
// 键盘输入年份
System.out.println("请输入年份:");
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
// 创建日历对象,通过多态形式获得
Calendar c = Calendar.getInstance();
c.set(year, 2, 1);// 设置时间为当年的3月1日
c.add(Calendar.DATE, -1);// 前一天就是二月的最后一天
int date = c.get(Calendar.DATE);
System.out.println("二月份有" + date + "天");
}
}
运行结果:
最后
以上就是想人陪蜜粉为你收集整理的Java——常用API(Date日期类)02的全部内容,希望文章能够帮你解决Java——常用API(Date日期类)02所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复