java语法学习(5)Date类,Calendar 类,DateFormat类和SimpleDateFormat类

Date类,Calendar 类,DateFormat类和SimpleDateFormat类

Date类

用于表示时间与日期,date类中大部分的构造方法和普通方法都不推荐使用了
只有两个构造方法可以用

函数介绍
Date()创建当前日期时间的Date对象
Date(long date)创建指定时间的Date对象,其中date 参数表示从1970年1月1日0时0分0以来的毫秒数

Calendar 类(抽象类)

用于完成日期和时间字段的操作,它可以通过特定的方法设置和读取日期的特定部分,比如年月日时分秒等。
其对象的创建:

Calendar calendar = Calendar.getInstance();

Calendar 的常用方法:

函数介绍
int get(int field)返回指定日历字段的值
void add(int field,int amount)根据日历规则,为指定的日历字段增加或减去指定的时间量
void set(int field, int value)为指定日历字段设置指定值
void set(int year,int month ,int date)设置Calendar 对象的年月日三个字段的值
void set(int year,int month ,int date,int hourOfDay,int minute,int second)设置Calendar 对象的年月日三个字段的值
e.g:
import java.util.*;
public class Example20{
   public static void main(String[] args)
   {
     Calendar  calendar = Calendar.getInstance();
     int year = calendar.get(Calendar.YEAR);
     int month = calendar.get(Calendar.MONTH) + 1;   //获取当前月份
     int date = calendar.get(Calendar.DATE);
     int hour = calendar.get(Calendar.HOUR);
     int minute = calendar.get(Calendar.MINUTE);   //获取当前月份
     int second = calendar.get(Calendar.SECOND);
   }
}

DateFormat类

专门用于将日期格式化为字符串或者将用特定格式显示的日期字符串转换成一个Date对象。
DateFormat类的常用方法:

函数介绍
static DateFormat getDateInstance()用于创建默认语言环境和格式化风格的日期格式器
static DateFormat getDateInstance(int style)用于创建默认语言环境和指定格式化风格的日期格式器
static DateFormat getDateTimeInstance()用于创建默认语言环境和格式化风格的日期/时间格式器
static DateFormat getDateTimeInstance(int dateStyle , int timeStyle)用于创建默认语言环境和指定格式化风格的日期/时间格式器
String format(Date date)将一个Date 格式化为日期/时间字符串
Date parse(String source)将给定字符串解析成一个日期

这四个静态方法。可以获得DateFormat 类的实例对象,每种方法返回的对象都具有不同的作用。DateFormat 类中定义了许多常量,其中四个常量值是用于作为参数传递给方法的
FULL
LONG
MEDIUM
SHORT

e.g:
package dateformat;
import java.text.*;
import java.util.*;
public class dateformat {
	public static void main(String[] args)
	{
	// 创建 Date 对象 
    Date date = new Date();
    // Full格式的日期格式对象
    DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL);
    // Long 格式的日期格式器对象
    DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG);
    // MEDIUM  格式的日期/时间格式器对象
    DateFormat mediumFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);
    // SHORT 格式的日期/时间格式器对象
    DateFormat shortFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
    
    System.out.println("当前的完整格式是:"+fullFormat.format(date));
    System.out.println("当前日期的长格式为:"+longFormat.format(date));
    System.out.println("当前日期的普通格式为:"+mediumFormat.format(date));
    System.out.println("当前日期的段格式为:"+shortFormat.format(date));
	}
}

当前的完整格式是:2021年3月28日星期日
当前日期的长格式为:2021年3月28日
当前日期的普通格式为:2021年3月28日 上午9:50:52
当前日期的段格式为:2021/3/28 上午9:50

函数介绍
parse(String source)能够将字符串解析成Date 对象,但是它要求字符串必须符合日期/时间格式的要求,否则会抛出异常
package dateformat;
import java.text.*;
public class dateformat {
	public static void main(String[] args) throws ParseException
	{
	// 创建 DateFormat 对象
	DateFormat dt1 = DateFormat.getDateInstance();
	// 创建 Long 格式的 DateFormat 对象
	DateFormat dt2 = DateFormat.getDateInstance(DateFormat.LONG);
	// 定义两个日期格式的字符串
	String str1 = "2018-01-27";
	String str2 = "2018年01月27日";
	System.out.println(dt1.parse(str1));//有问题
	System.out.println(dt2.parse(str2));
	} 
}

输出为:Sat Jan 27 00:00:00 CST 2018

SimpleDateFormat类

DateFormat 对象的 parse()方法将字符串解析为日期时,需要输入固定格式的字符串,这显得不够灵活
因此Java提供了一个SimpleDateFormat类,SimpleDateFormat 类是DateFormat 类的子类,可以使用new 关键字创建实例对象它的构造方法需要接收一个表示日期格式模板的字符串参数

e.g:
package simpledateformat;
import java.util.*;
import java.text.*;
public class simpledateformat {
   public static void main() throws ParseException
   {
	  /* SimpleDateFormat sdf = new SimpleDateFormat("Gyyyy年MM月dd日:今天是yyyy年的第D天,E");
	   System.out.println(sdf.format(new Date()));*/
	   SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
	   String str = "2018/01/27";
	   System.out.println(sdf.parseObject(str));
   }
}

输出:
Sat Jan 27 00:00:00 CST 2018

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dearzcs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值