java 怎么把日期格式化时间_Java—格式化日期/时间

DateFormat

DateFormat继承MessageFormat,是实现日期格式化的抽象类。提供两个方法:format()用于将数值或日期格化式成字符串;parse()方法用于将字符串解析成数值或日期。

parse()用法举例:

String dateStr = "2019-12-10";

System.out.println(DateFormat.getDateInstance().parse(dateStr);

输出结果:

Thur Dec 10 00:00:00 CST 2019

如何得到DateFormat对象?

getDateInstance():返回一个只有日期,无时间的日期格式器;

getImeInstance():返回一个只有时间,没有日期的时间格式器;

getDateTimeInstance():返回一个既有时间、又有日期的格式器。

SimpleDateFormat

DateFormat在格式化日期时间方面显得不够灵活,需要特定的格式才能解析,为了更好的格式化Date,它的子类SimpleDateFormat出现了。

使用示例:

public class SimpleDateFormatTest{

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

Date date = new Date();

//创建SimpleDateFormat对象;

SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("Gyyyy年中第D天");

// 将date日期解析为字符串

String dateStr = simpleDateFormat1.format(date);

System.out.println("公元日期表示: " + dateStr);

String dateStr2 = "19###十二月##10";

SimpleDateFormat simpleDateFormat2 = SimpleDateFormat("y###MMM##d");

//将字符串解析成日期

System.out.println("一般日期为: " + simpleDateFormat2.parse(dateStr2));

}

}

输出结果:

公元日期表示: 公元2020年中第77天

一般日期为: Thur Dec 10 00:00:00 CST 2019

DateTimeFormatter

DateTimeFormatter是Java 8 中java.time.format包下新增的格式器类,不仅可以把日期或时间对象格式化成字符串,也可以把特定格式的字符串解析成日期或时间对象。

format()示例

public class DateTimeFormatterFormatTest{

public static void main(String[] args) {

LocalDateTime localDateTime = LocalDateTime.now();

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;

System.out.println(dateTimeFormatter.format(localDateTime ));

System.out.println(localDateTime.format(dateTimeFormatter));

//全日期时间

DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.MEDIUM);

System.out.println(dateTimeFormatter2.format(localDateTime ));

System.out.println(localDateTime.format(dateTimeFormatter2));

//模式字符串创建格式器

DateTimeFormatter dateTimeFormatter3 = DateTimeFormatter.ofPattern("Gyyyy-MMM-dd HH:mm:ss");

System.out.println(dateTimeFormatter3.format(localDateTime ));

System.out.println(localDateTime.format(dateTimeFormatter3));

}

}

输出结果

2020-03-17T22:41:20.220

2020-03-17T22:41:20.220

2020年3月17日 星期二 22:41:20

2020年3月17日 星期二 22:41:20

公元2020-三月-17 22:41:20

公元2020-三月-17 22:41:20

parse()示例

public class DateTimeFormatterParseTest{

public static void main(String[] args) {

String str = "2020$$$03$$$dd 22时51分10秒"

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyy$$$MMM$$$dd HH时mm分ss秒");

//解析日期

LocalDateTime localDateTime = LocalDateTime.parse(str, dateTimeFormatter);

System.out.println(localDateTime);

}

}

输出结果:

2020-03-17T22:51:10

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值