【java笔记】Date与String的转换

===============================================

 2021/4/15_第2次修改                       ccb_warlock

 

更新说明:

2021/4/15:

1.细化了转换格式;

===============================================

最近整理了公司的java代码,发现业务中经常使用时间转换,且写法多种多样,故针对时间转换单独做个整理。

 

结合多个java项目看,虽然jdk 8开始引入了新的日期、时间类型LocalDate、LocalDateTime,但可能是出于ORM兼容性的考虑,几个项目中多数时间类型还是使用Date(java.util),所以这里的时间类型还是以Date举例。

 

获取当前时间

常见的方法是new一个对象

Date now = new Date();

 

但是jdk8开始建议使用Calendar来取时间,故下面的例子大都使用Calendar。

Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

 

Date -> String

1)4位年-2位月-2位日(yyyy-MM-dd)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(cal.getTime());

控制台输出:

2021-04-15

 

2)4位年-2位月-2位日 24小时制(yyyy-MM-dd HH:mm:ss)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(cal.getTime());

控制台输出:

2021-04-15 00:51:13

 

3)4位年-2位月-2位日 12小时制(yyyy-MM-dd hh:mm:ss aa)

// AM/PM(英文)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa", Locale.ENGLISH");
String s = sdf.format(cal.getTime());

控制台输出:

2021-04-15 00:51:13 AM

 

// 上午/下午(中文)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa", Locale.CHINESE");
String s = sdf.format(cal.getTime());

控制台输出:

2021-04-15 00:51:13 上午

 

4)4位年-2位月-2位 星期X(yyyy-MM-dd EEEE)

// 星期X(英文全称)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd EEEE", Locale.ENGLISH);
String s = sdf.format(cal.getTime());

控制台输出:

2021-04-15 Thu

 

// 星期X(英文简称)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd E", Locale.ENGLISH);
String s = sdf.format(cal.getTime());

控制台输出:

2021-04-15 Thursday

 

// 星期X(中文)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd E", Locale.CHINESE);
String s = sdf.format(cal.getTime());

控制台输出:

2021-04-15 星期四

 

String -> Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2021-4-15 00:31:05");

 

 

 

posted @ 2021-03-20 23:52  粽先生  阅读(436)  评论(0编辑  收藏  举报