Go 语言的时间处理

最近学习GoLang的time包,其实学习Go只是为了业余时间可以放松下。对于我这个小菜来说没有体会出Go卓越的方面对我自己的工作有什么影响,因为我是PHP程序员出生,很多都是别人封装好的代码,自己也不了解底层。只会用所以讲time包也是在应用的基础上面。

废话不多说上干货:

<?php
$str = date("Y-m-d H:i:s");
echo $str;//2014-01-02 23:20:00
?>

相信熟悉PHP的读者应该知道这个东西就是获取当前时间的一个输出。

在Go语言中,可能很多PHPer并不能适应,因为在PHP中已经帮我们在拓展库中引入了时间相关处理函数,所以我们直接调用没有问题,但是在Go语言中,需要我们手动引入一个time的包

package main

import (
"fmt"
"time"
)

func main() {
t := time.Now()//获取当前时间的结构体
fmt.Println(t.Format("2006-01-02 15:04:05"))//格式化输出
}

初次用的使用者会很纳闷,我获取当前的时间,为什么还要写2006-01-02 15:04:05这个东西,因为作者想咱们饮水思源呀。记住这个时候就是Go语言诞生的时候,把这个作为时间格式让我们自己选择,当然更多格式方面的东西在time的format.go介绍,我由于只是抛砖引玉就不多做详解。

这个时候有人会问,我是PHPer我要时间戳,你怎么给我时间戳?大神想事情肯定比我们周全。看招:

package main

import (
"fmt"
"time"
)

func main() {
t := time.Date(2014, 1, 2, 0, 0, 0, 0, time.Local)
fmt.Println(t.Unix())
}
时间戳这不就出来了嘛。这个时候PHPer会想了,获取个时间戳写那么麻烦,还没有我直接用PHP爽呢。真挑剔啊。又要性能还要代码好写,程序员工资可以白拿了。来个时间比较的例子吧。我们在PHP中比较时间大小可能还要转个时间戳自己封装一个函数什么的。但是Golang Time包的作者玩时间肯定不是我们所能披靡的。来个时间比较的例子让你们感受下

package main

import (
"fmt"
"time"
)

func main() {
t := time.Date(2014, 1, 2, 0, 0, 0, 0, time.Local)
fmt.Println(t.Unix())
}

忘记咱们的PHPer时间戳比大小的逻辑判断吧,用语言表达。当然不是黑PHP表达不清楚,会封装函数的PHPer自己都知道要怎么实现一些方法来让自己的代码可读性高。以后我的代码也可能参考这个Go来封装,而且还能死规定自己的时间原点。例如生日,让使用封装包的家伙记住我的生日什么的。

哈哈,扯远了,学习一门新语言就是用他了,然后优点借鉴过来让自己的代码更加好读。希望比我更加了解time包的高人,多多留言,我也想更加了解多点Go在时间处理上面先进的东西。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。