Go语言对date, time format格式的定义真是对传统的一个颠覆。乍一看第一反应是什么鬼, 真正理解之后给它一个大大的赞!
这里我们通过一个例子来对吧java 和 go format同一个时间格式用的layout有什么不同
将当前时间(2018年6月7日上午10点41分59秒) 格式化成 06/07/2018 1:30:30 PM
JAVA实现如下
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
String format = simpleDateFormat.format(new Date());
System.out.println(format);
-------------------------------
输出:
06/07/2018 10:41:59 AM
如果你不用查文档,轻轻松松写对了! 恭喜你,一定经常用format吧,这都能记住。
期望输出格式: MM/dd/yyyy hh:mm:ss a,
实际输出 06/07/2018 10:41:59 AM
go的实现
t1 := time.Now()
formatTime := t1.Format("01/02/2006 15:04:05 PM")
fmt.Println(formatTime)
-------------------------------------
output:
06/07/2018 10:52:27 AM
期望输出格式: 01/02/2006 15:04:05 PM,
实际输出 06/07/2018 10:52:27 AM
有没有一种所见即所得的感觉
即使一个不会写代码的人,看到go的这个格式也知道期望输出的是啥吧。
不过go也有需要记的东西,如年用2006表示,月用01,日用02...
go语言的layout格式
月份 1,01,Jan,January
日 2,02,_2
时 3,03,15,PM,pm,AM,am
分 4,04
秒 5,05
年 06,2006
周几 Mon,Monday
时区时差表示 -07,-0700,Z0700,Z07:00,-07:00,MST
时区字母缩写 MST
发现规律没,
一个简单易记的方式是,1,2,3,4,5,6,-7,依次对应月,日,时,分,秒,年,时区,再加一个周几用Monday
网友评论