本文主要是介绍YYYY与yyyy小记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境:
jdk:1.8
oralce:10g
这里简单的说下区别:
1.字符串转日期测试
这里的日期在YYYY下的转换规律待定,目前还不清楚
在yyyy是正常的
2.日期转字符串测试
这里的日期在YYYY下的转换规律:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年
在yyyy是正常的
3.orale:不区分大小写格式,所以不存在问题,相当于java的yyyy
场景1: java场景
public static void main(String[] args) {testDate1();testDate2();}public static void testDate1() {System.out.println("字符串转日期测试");//SimpleDateFormat测试SimpleDateFormat sf1 = new SimpleDateFormat("YYYY-MM-dd");SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd");try {Date d1 = sf1.parse("2020-12-26");Date d2 = sf1.parse("2020-12-26");Date d3 = sf1.parse("2020-12-27");Date d4 = sf2.parse("2020-12-27");System.out.println("字符串转日期YYYY" + d1.toLocaleString());System.out.println("字符串转日期YYYY" + d2.toLocaleString());System.out.println("字符串转日期YYYY" + d3.toLocaleString());System.out.println("字符串转日期yyyy" + d4.toLocaleString());} catch (ParseException e) {e.printStackTrace();}//DateTimeFormatter测试 DateTimeFormatter不支持YYYYDateTimeFormatter dt1 = DateTimeFormatter.ofPattern("YYYY-MM-dd");DateTimeFormatter dt2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");//经过测试,该解析会抛异常,如果要正常解析,那么估计要自定义Formatter//Exception in thread "main" java.time.format.DateTimeParseException: Text '2020-12-26' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {DayOfMonth=26, WeekBasedYear[WeekFields[SUNDAY,1]]=2020, MonthOfYear=12},ISO of type java.time.format.Parsed//LocalDate date1 = LocalDate.parse("2020-12-26", dt1);//LocalDate date2 = LocalDate.parse("2020-12-27", dt1);LocalDate date3 = LocalDate.parse("2020-12-27", dt2);System.out.println("字符串转日期" + date3);}public static void testDate2() {System.out.println("日期转字符串测试");SimpleDateFormat sf1 = new SimpleDateFormat("YYYY-MM-dd");SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();//这里设置的是2020-12-26c.set(Calendar.MONTH, 11);c.set(Calendar.DATE, 26);System.out.println(sf1.format(c.getTime()));System.out.println(sf2.format(c.getTime()));c.add(Calendar.DATE, 1);System.out.println("日期转字符串" + sf1.format(c.getTime()));System.out.println("日期转字符串" + sf2.format(c.getTime()));//java8的测试DateTimeFormatter dt1 = DateTimeFormatter.ofPattern("YYYY-MM-dd");DateTimeFormatter dt2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");LocalDate date1 = LocalDate.of(2020, 12, 26);LocalDate date2 = LocalDate.of(2020, 12, 27);System.out.println("日期转字符串" + date1.format(dt1));System.out.println("日期转字符串" + date2.format(dt1));System.out.println("日期转字符串" + date2.format(dt2));}
场景2: 数据库 这里以oracle
select to_char(sysdate - 4, 'yyyy-MM-dd') "20201226-YYYY", to_char(sysdate - 4, 'YYYY-MM-dd') "20201226-yyyy",to_char(sysdate - 3, 'yyyy-MM-dd') "20201227-YYYY", to_char(sysdate - 3, 'YYYY-MM-dd') "20201227-yyyy",to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') "oracle不区分大小写的"
from dual;
这篇关于YYYY与yyyy小记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!