Java基础:Date类、DateFormat类、Calendar类

Date类、DateFormat类、Calendar类

Date类

构造方法(与类同名):
Date(); 根据当前系统时间创建日期对象
Date(long time);根据传入的毫秒值创建日期对象

成员方法:
.getTime();获取当前日期对象的毫秒值时间
.toLocaleString();根据本地格式转换日期对象

具体内容如下:

System.out.println(System.currentTimeMillis());
//输出:1592919245566
//解释:距离197.01.01 00:00:00
//这是格林尼治时间,中国加8小时
//已过去1592919245566(long型)毫秒

Date date1 = new Date();
System.out.println(date1);
//输出:Tue Jun 23 21:43:07 CST 2020
//解释:无参构造方法,输出China Standard Time

Date date2 = new Date(0);
Date date3 = new Date(1592921070306L);
System.out.println(date2);
System.out.println(date3);
//输出:Thu Jan 01 08:00:00 CST 1970Tue Jun 23 21:34:05 CST 2020
//解释:参数构造方法,输出0毫秒和1592919245566毫秒分别对应的时刻

long time = date1.getTime();
System.out.println(time);
//输出:1592921152433
//解释:成员方法getTime(),日期转毫秒,功能同System.currentTimeMillis()

DateFormat类

Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。

构造方法:
SimpleDateFormat(String s);根据指定的模板创建日期格式化对象

成员方法:
.format(Date d);根据指定格式格式化日期对象
.parse(String s);根据指定格式解析字符串

具体内容如下:

日期 -> 文本


SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
Date date4=new Date();
String text=sdf1.format(date4);
System.out.println(text);
System.out.println(date4);//用作对比
//输出:2020年06月23日 22:23:33
//Tue Jun 23 22:23:33 CST 2020

文本-> 日期

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

public class DateDemo {
    public static void main(String[] args) throws ParseException {
        demo();
    }

    private static void demo() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        Date date = sdf.parse("2050/10/01");
        System.out.println(date);
    }
}

//输出:Sat Oct 01 00:00:00 CST 2050

Calendar类

如下代码演示:

Calendar c=Calendar.getInstance(); // 获取大量信息
System.out.println(c);
System.out.println("===========");

int year=c.get(Calendar.YEAR); // 获取
System.out.println(year);
int month=c.get(Calendar.MONTH)+1; // 月注意+1
System.out.println(month);
int day=c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);

c.set(Calendar.YEAR,2030); // 设置
int year2=c.get(Calendar.YEAR);
System.out.println(year2);

c.add(Calendar.YEAR,+5); // 增减
int year3=c.get(Calendar.YEAR);
System.out.println(year3);

/*
java.util.GregorianCalendar[
time=1592975759251,
areFieldsSet=true,
areAllFieldsSet=true,
lenient=true,
zone=sun.util.calendar.ZoneInfo
[id="Asia/Shanghai",
offset=28800000,
dstSavings=0,
useDaylight=false,
transitions=19,
lastRule=null],
firstDayOfWeek=1,
minimalDaysInFirstWeek=1,
ERA=1,
YEAR=2020,
MONTH=5,
WEEK_OF_YEAR=26,
WEEK_OF_MONTH=4,
DAY_OF_MONTH=24,
DAY_OF_YEAR=176,
DAY_OF_WEEK=4,
DAY_OF_WEEK_IN_MONTH=4,
AM_PM=1,HOUR=1,
HOUR_OF_DAY=13,
MINUTE=15,
SECOND=59,
MILLISECOND=251,
ZONE_OFFSET=28800000,
DST_OFFSET=0]
===========
2020
6
24
2030
2035
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值