Java知识点--DataFormat,SimpleDateFormat和DateTimeFormatter

Java知识点–DataFormat,SimpleDateFormat和DateTimeFormatter

这个知识点没什么难懂的地方,就不一一赘述了。

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class test01 {
	public static void main(String[] args) throws Exception{
		Date date = new Date();
		Locale[] locales= {Locale.CHINA,Locale.US};
		DateFormat[] df=new DateFormat[16];
		for(int i=0;i<locales.length;i++) {
			df[i*8]=DateFormat.getDateInstance(DateFormat.SHORT,locales[i]);
			df[i*8+1]=DateFormat.getDateInstance(DateFormat.MEDIUM, locales[i]);
			df[i*8+2]=DateFormat.getDateInstance(DateFormat.LONG, locales[i]);
			df[i*8+3]=DateFormat.getDateInstance(DateFormat.FULL, locales[i]);
			df[i*8+4]=DateFormat.getTimeInstance(DateFormat.SHORT, locales[i]);
			df[i*8+5]=DateFormat.getTimeInstance(DateFormat.MEDIUM, locales[i]);
			df[i*8+6]=DateFormat.getTimeInstance(DateFormat.LONG, locales[i]);
			df[i*8+7]=DateFormat.getTimeInstance(DateFormat.FULL, locales[i]);
		}
		for(int i=0;i<locales.length;i++) {
			var tip=i==0?"---中国日期格式---":"---美国日期格式---";
			System.out.println(tip);
			System.out.println("SHORT格式的日期格式:"+df[i*8].format(date));
			System.out.println("MEDIUM格式的日期格式:"+df[i*8+1].format(date));
			System.out.println("LONG格式的日期格式:"+df[i*8+2].format(date));
			System.out.println("FULL格式的日期格式:"+df[i*8+3].format(date));
			System.out.println("SHORT格式的时间格式:"+df[i*8+4].format(date));
			System.out.println("MEDIUM格式的时间格式:"+df[i*8+5].format(date));
			System.out.println("LONG格式的时间格式:"+df[i*8+6].format(date));
			System.out.println("FULL格式的时间格式:"+df[i*8+7].format(date));
		}
	}
}
import java.text.DateFormat;

public class test02 {
	public static void main(String[] args) throws Exception {
		var str1="2020/5/25";
		var str2="2020年5月25日";
		System.out.println(DateFormat.getDateInstance().parse(str2));
		System.out.println(DateFormat.getDateInstance(DateFormat.SHORT).parse(str1));
		//异常
		System.out.println(DateFormat.getDateInstance().parse(str1));
	}
}

比起DateFormat,SimpleDateFormat不拘于格式,只要你个格式化字符串足够准确,就会得到你想要的结果
控制符

import java.text.SimpleDateFormat;
import java.util.Date;

public class test03 {
	public static void main(String[] args) throws Exception{
		Date date = new Date();
		SimpleDateFormat format = new SimpleDateFormat("Gyyyy年的第D天");
		String string = format.format(date);
		System.out.println(string);
		String str="14###3月##21";
		SimpleDateFormat format2 = new SimpleDateFormat("y###MMM##d");
		System.out.println(format2.parse(str));
	}
}

  • DateTimeFormatter
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;

public class test04 {
	public static void main(String[] args) {
		DateTimeFormatter[] formatter=new DateTimeFormatter[] {
				DateTimeFormatter.ISO_LOCAL_DATE,
				DateTimeFormatter.ISO_LOCAL_TIME,
				DateTimeFormatter.ISO_LOCAL_DATE_TIME,
				DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL,FormatStyle.MEDIUM),
				DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG),
				DateTimeFormatter.ofPattern("Gyyyy%%MMM%%dd HH:mm:ss")
		};
		LocalDateTime now = LocalDateTime.now();
		for(int i=0;i<formatter.length;i++) {
			System.out.println(now.format(formatter[i]));
			System.out.println(formatter[i].format(now));
		}
	}
}
  • 解析字符串
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class test05 {
	public static void main(String[] args) {
		String str1="2020==05==25 10时01分01秒";
		DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy==MM==dd HH时mm分ss秒");
		LocalDateTime parse = LocalDateTime.parse(str1,pattern);
		System.out.println(parse);
		String str2="2020$$$5月$$$13 20小时";
		DateTimeFormatter pattern2 = DateTimeFormatter.ofPattern("yyy$$$MMM$$$dd HH小时");
		LocalDateTime parse2 = LocalDateTime.parse(str2,pattern2);
		System.out.println(parse2);
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值