java dateformat_java-DateFormat

1、DateFormat类概述

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

是抽象类,所以使用其子类SimpleDateFormat。

2、SimpleDateFormat构造方法

public SimpleDateFormat():将一个 Date 格式化为日期/时间字符串。(默认模式)

public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

3、成员方法

public final String format(Date date):将一个 Date 格式化为日期/时间字符串。

public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。

举例1:

48304ba5e6f9fe08f3fa1abda7d326ab.png

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

/*

* Date -- String(格式化)

* public final String format(Date date)

*

* String -- Date(解析)

* public Date parse(String source)

*

* DateForamt:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。

*

* SimpleDateFormat的构造方法:

* SimpleDateFormat():默认模式

* SimpleDateFormat(String pattern):给定的模式

* 这个模式字符串该如何写呢?

* 通过查看API,我们就找到了对应的模式

* 年 y

* 月 M

* 日 d

* 时 H

* 分 m

* 秒 s

*

*

*/

public class DateFormatDemo01 {

public static void main(String[] args) throws ParseException {

// Date -- String

// 创建日期对象

Date d = new Date();

// 创建格式化对象

// SimpleDateFormat sdf = new SimpleDateFormat();

// 给定模式

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

// public final String format(Date date)

String s = sdf.format(d);

System.out.println(s);

//String -- Date

String str = "2008-08-08 12:12:12";

//在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = sdf2.parse(str);

System.out.println(date);

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

举例2:工具类

48304ba5e6f9fe08f3fa1abda7d326ab.png

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class DateUtil {

private DateUtil() {

}

/**

* 这个方法的作用就是把日期转成一个字符串

*

* @param d

* 被转换的日期对象

* @param format

* 传递过来的要被转换的格式

* @return 格式化后的字符串

*/

public static String dateToString(Date d, String format) {

// SimpleDateFormat sdf = new SimpleDateFormat(format);

// return sdf.format(d);

return new SimpleDateFormat(format).format(d);

}

/**

* 这个方法的作用就是把一个字符串解析成一个日期对象

*

* @param s

* 被解析的字符串

* @param format

* 传递过来的要被转换的格式

* @return 解析后的日期对象

* @throws ParseException

*/

public static Date stringToDate(String s, String format)

throws ParseException {

return new SimpleDateFormat(format).parse(s);

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

测试类:

48304ba5e6f9fe08f3fa1abda7d326ab.png

import java.text.ParseException;

import java.util.Date;

public class DateFormatDemo02 {

public static void main(String[] args) throws ParseException {

Date d = new Date();

//yyyy-MM-dd HH:mm:ss

String s = DateUtil.dateToString(d,"yyyy年MM月dd日 HH:mm:ss");

System.out.println(s);

String s2 = DateUtil.dateToString(d,"yyyy年MM月dd日");

System.out.println(s2);

String s3 = DateUtil.dateToString(d,"HH:mm:ss");

System.out.println(s3);

String str = "2015-12-6";

Date dd = DateUtil.stringToDate(str,"yyyy-MM-dd");

System.out.println(dd);

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

举例3:算一下你来到这个世界多少天?

48304ba5e6f9fe08f3fa1abda7d326ab.png

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

/*

* 算一下你来到这个世界多少天?

*

* 分析:

* A:键盘录入你的出生的年月日

* B:把该字符串转换为一个日期

* C:通过该日期得到一个毫秒值

* D:获取当前时间的毫秒值

* E:用D-C得到一个毫秒值

* F:把E的毫秒值转换为年

* /1000/60/60/24

*/

public class DateFormatDemo03 {

public static void main(String[] args) throws ParseException {

// 键盘录入你的出生的年月日

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的出生年月日:");

String line = sc.nextLine();

// 把该字符串转换为一个日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date d = sdf.parse(line);

// 通过该日期得到一个毫秒值

long myTime = d.getTime();

// 获取当前时间的毫秒值

long cutTime = System.currentTimeMillis();

// 用D-C得到一个毫秒值

long time = cutTime - myTime;

// 把E的毫秒值转换为年

long day = time / 1000 / 60 / 60 / 24;

System.out.println("您来到这个世界:" + day + "天。");

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值