日历,日期

本文深入探讨Java中的日期时间处理,包括Date、DateFormat、SimpleDateFormat、Calendar类的使用方法及实例,涵盖日期格式化、解析、获取特定时间点等关键操作。

日历,日期

Date 类

java.util.Date 类 表示特定的瞬间,精确到毫秒。

所获得的为日期时间,即系统时间。

作用:用于获取毫秒值,用于计算

成员方法:

A. 存 void setTime(long); 存一个数据

B 取 long getTime(long);

import java.util.Date;

public class demo2
{
    public static void main(String[] args) {
        Date date =new Date();     //调用Date 类
        date.setTime(10232);     //给date附值
        System.out.println(date); //输出的为从源点时间到经过了10232时间后的日期  
        long time = date.getTime();//将日期转换成LONG类型的数
        System.out.println(time);//输出为10232

    }
}

常用方法

DateFormat

java.text.DateFormat 是日期/时间格式化子类的抽象类,可通过此类完成日期与文本之间的转换,也就是Date与String之间的互换。

格式化:按指定的对象格式,从Date转String

解析:按指定的格式,从String转Date

构造方法

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类SimpleDateFormat,这个类需要一个模式来指定格式化或解析的标准

public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造
SimpleDateFormat
参数pattern是一个字符串,代表日期时间的自定义格式。

format方法
使用format方法的代码为:

//将日期以想要的格式输出。那么就涉及到两步,第一获得日期,调用Date类
//        第二,使用format 方法将日期转成需要文本格式,即字符串
        Date date = new Date();
        System.out.println(date);  //此时,date为空参调用,直接输出为当前日期
        long time2 = date.getTime();
        System.out.println(time2);  //获得是一个long 型的数据
        SimpleDateFormat time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = time1.format(time2);  //获得的为一个String类型的字符串

        String str1="2018-12-02 11:12:00";
        System.out.println(time1.format(time2));

parse方法
使用parse方法的代码为:

//按一定的格式将字符串转成日期  ,就得调用Parse,这个方法有一个异常,
      需要抛出异常,即throws ParseException
      public class demo1 {
    public static void main(String[] args) throws ParseException {
       SimpleDateFormat time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        Date date1 = time1.parse(str);
        System.out.println(date1);
        }
        }

总结:simpleDateFormat 的作用就是将时间转成各自需要的格式以String字符串 输出出来

Calendar 类

作用:用于获取单独的某个时间点

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子
类对象,如下:
Calendar静态方法
public static Calendar getInstance() :使用默认时区和语言环境获得一个日历

格式:Calendar time3=Calendar.getInstance(); 这里使用了反射技术,暂不介绍

在定义了类后,就可使用该类中的get与set方法。

例:

如何知道某年的某天为周几:

//Calendar
Calendar time3 = Calendar.getInstance();
time3.set(2017, 11, 3);     //给定时间,2017年 12月3日  以下做解释   
int week= time3.get(Calendar.DAY_OF_WEEK)-1;    

System.out.println(time3.get(Calendar.DAY_OF_WEEK) - 1);

在java中,日期使用的是英国时间,它的月份为0至11月,即我们的1月对应对方的0月。12月对应对方的11月。

在周中,它以周日为开始,即周日为我们的星期一。那么,我们的周日就为0,

记忆方法:获得月份为 月份-1= 需输入月份。

get/set方法
get方法用来获取指定字段的值,set方法用来设置指定字段的值,代码使用演示:

import java.util.Calendar;
public class CalendarUtil {
public static void main(String[] args) {
// 创建Calendar对象
Calendar cal = Calendar.getInstance();
// 设置年
int year = cal.get(Calendar.YEAR);   //获取当前年
// 设置月
int month = cal.get(Calendar.MONTH) + 1;  //获取当前月
// 设置日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);    //获取当前月的日期
//设置 周
int week = time3.get(Calendar.DAY_OF_WEEK)-1;   //获取当前的周

System.out.print(year + "年" + month + "月" + dayOfMonth + "日"+"星期"+week);
}
}

add方法
add方法可以对指定日历字段的值进行加减操作,如果第二个参数为正数则加上偏移量,如果为负数则减去偏移
量。代码如:

import java.util.Calendar;
public class Demo08CalendarMethod {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.print(year + "年" + month + "月" + dayOfMonth + "日"); // 2018年1月17日
// 使用add方法
cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
cal.add(Calendar.YEAR, ‐3); // 减3年
System.out.print(year + "年" + month + "月" + dayOfMonth + "日"); // 2015年1月18日;
}
}

getTime方法
Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象。

import java.util.Calendar;
import java.util.Date;
public class Demo09CalendarMethod {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
System.out.println(date); // Tue Jan 16 16:03:09 CST 2018
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值