- 日期格式化y与Y的区别
- 正确格式:yyyyMMdd HH:mm:ss
- y 表示 year,而 Y 表示 Week Year !
- 这是一个遥远的故事,故事的开始是这样的。
- 我们知道,不同的国家对于一周的开始和结束的定义是不同的。
- 如在中国,我们把星期一作为一周的第一天,而在美国,他们把星期日作为一周的第一天。
- 所以2020年的第一周应该怎么算,
- 1 月 1 日是周三,到下周三(1 月 8 日),这 7 天算作这一年的第一周。
- 因为周日(周一)才是一周的第一天,所以,要从 2020 年的第一个周日(周 一)开始往后推 7 天才算这一年的第一周。
- 因为 12.29、12.30、12.31 是 2019 年,而 1.1、1.2、1.3 才是 2020 年,而
- 1.4 周日是下一周的开始,所以,第一周应该只有 1.1、1.2、1.3 这三天。
- 所以简而言之就是,JDK针对ISO8601提供支持,引入大Y与小y
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
public class DateFormatTest {
@Test
public void dateConvertString() throws ParseException {
LocalDateTime ldt = LocalDateTime.now();
SimpleDateFormat sdf = new SimpleDateFormat();
String format = sdf.format( ldt );
System.out.println( "字符串类型当前时间:" + format );
Date date = sdf.parse( format );
System.out.println( "Date类型当前时间:" + date );
}
@Test
public void weekYesrTest() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
SimpleDateFormat sdf1 = new SimpleDateFormat( "YYYY" );
System.out.println( sdf1.format( sdf.parse( "2019-12-01" ) ) );
System.out.println( sdf1.format( sdf.parse( "2019-12-30" ) ) );
System.out.println( sdf1.format( sdf.parse( "2020-01-01" ) ) );
}
}