常用方法,和一些坑。

一、知识点

(1)首先导入time包

不然接下来的time相关方法都是无法运行的。

(2)直接上代码

返回结果:

2016-05-25 18:23:33.9384976 +0800 CST

2016-05-25 18:23:33.9514983 +0800 CST

2016-05-25 18:23:33 06:23:33

这里要提一下 2006-01-02 15:04:05 03:04:05 这串时间格式。

  1. 2006代表年,01代表月份,02代表日期。
  2. 2006-01-02就代表时间格式为年-月-日。
  3. 同理,15代表24小时制的小时,04代表分钟,05代表秒钟。
  4. 15:04:05代表的是小时:分钟:秒钟。

为了表示对比,所以后面有个03:04:05,这里的03是12小时制的03,所以输出的time结果有所不同。

(3)如何获得毫秒级的时间单位?

秒钟以下的时间怎么输出呢?我暂时还没有搞明白…

似乎不存在毫秒级以下的时间格式了…

为了对付这个问题,为了获得毫秒级的时间,我使用的是这样的方法:

直接截取time.Now()。

这样就可以获得2016-05-25 18:31:56.3583954这样的时间单位了。

(4)go time的一个坑

1.mysql直接存time

上文所述:newtime := time.Now()

这样的代码产生的time是这样的:2016-05-25 18:31:56.3427954 +0800 CST。

这样的时间格式存到mysql数据库里面时是会有问题的。不能使用Date格式来存,必须用varchar形式来存。

2.+号

还有个问题就是这个+号,假设有如下场景:

存在数据库里面的time是2016-05-25 18:31:56.3427954 +0800 CST

万一要把这串string放到url中会发生什么情况?

浏览器在处理这串url的时候是不会认这个加号的,url会变成:

2016-05-25 18:31:56.3427954 0800 CST

这样你的url链接往往会出一些小问题,虽然问题不大,但是确实还是挺讨厌的…

二、总结

记录一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注