编程语言
首页 > 编程语言> > java语法学习(5)Date类,Calendar 类,DateFormat类和SimpleDateFormat类

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

标签:java,DateFormat,int,SimpleDateFormat,日期,Date,格式,Calendar
来源: https://blog.csdn.net/dearzcs/article/details/123631623