VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > go语言 >
  • 时间戳转换小工具


 时间戳转换小工具

有时候需要时间和时间戳之间进行转换,以及获取当前时间和时间戳。
虽然功能很小,但是也不想每次去网页上搜一搜这么麻烦,因此写了一个小工具。

源码鉴赏:


			
			
 
package main
 
 
import (
 
"fmt"
 
"os"
 
"strconv"
 
"strings"
 
"time"
 
)
 
 
func main() {
 
const timeLayout = "\"2006-01-02 15:04:05\" \"20060102150405\""
 
var sData []string
 
switch len(os.Args) {
 
case 1:
 
t := time.Now()
 
fmt.Println(t.Unix(), t.Format(timeLayout))
 
return
 
case 2:
 
data := strings.TrimSpace(os.Args[1])
 
unix, err := strconv.ParseInt(data, 10, 64)
 
if err == nil {
 
// 转换这种: stamp 1618624877
 
fmt.Println(time.Unix(unix, 0).Format(timeLayout))
 
return
 
}
 
// 转换这种: stamp "2006-01-02 15:04:05"
 
sData = strings.Fields(data)
 
case 3:
 
// 转换这种: stamp 2006-01-02 15:04:05
 
sData = []string{os.Args[1], os.Args[2]}
 
default:
 
fmt.Printf("usage:%s or %s [2006-01-02 15:04:05|1136185445]\n", os.Args[0], os.Args[0])
 
return
 
}
 
 
var ymd, hms [3]int // 计算年月日
 
for i, v := range strings.Split(strings.TrimSpace(sData[0]), "-") {
 
n, err := strconv.Atoi(v)
 
if err != nil {
 
panic(err)
 
}
 
ymd[i] = n
 
}
 
if len(sData) == 2 { // 计算时分秒
 
for i, v := range strings.Split(strings.TrimSpace(sData[1]), ":") {
 
n, err := strconv.Atoi(v)
 
if err != nil {
 
panic(err)
 
}
 
hms[i] = n
 
}
 
}
 
t := time.Date(ymd[0], time.Month(ymd[1]), ymd[2], hms[0], hms[1], hms[2], 0, time.Local)
 
fmt.Println(t.Unix())
 
}

使用方法:


			
copy
 
不带参数,获取当前时间戳和时间
 
c:\>stamp
 
1618626612 "2021-04-17 10:30:12" "20210417103012"
 
带一个参数,包含完整年月日,时分秒,返回时间戳
 
c:\>stamp "2021-04-17 11:22:41"
 
1618629761
 
带两个参数,第一个为年月日,第二个为时分秒
 
c:\>stamp 2021-04-17 12:22:41
 
1618633361
 
只传一串数字会被当做时间戳,返回对应时间
 
c:\>stamp 1618693361
 
"2021-04-18 05:02:41" "20210418050241"
 
直传年月,注意直数字会被当做时间戳转换
 
c:\>stamp 2021-4
 
1617120000
 
只传年月日
 
c:\>stamp 2021-4-18
 
1618675200
 
直传年月日,时
 
c:\>stamp 2021-4-18 14
 
1618725600
 
直传年月日,时分
 
c:\>stamp 2021-4-18 14:45
 
1618728300
 
直传年月日,时分秒
 
c:\>stamp 2021-4-18 14:45:32
 
1618728332

把这个小工具记录一下,后面需要用的时候可以方便点,提高效率。

作者:janbar
出处:https://www.cnblogs.com/janbar

 时间戳转换小工具

有时候需要时间和时间戳之间进行转换,以及获取当前时间和时间戳。 虽然功能很小,但是也不想每次去网页上搜一搜这么麻烦,因此写了一个小工具。

源码鉴赏:


			
			
 
package main
 
 
import (
 
"fmt"
 
"os"
 
"strconv"
 
"strings"
 
"time"
 
)
 
 
func main() {
 
const timeLayout = "\"2006-01-02 15:04:05\" \"20060102150405\""
 
var sData []string
 
switch len(os.Args) {
 
case 1:
 
t := time.Now()
 
fmt.Println(t.Unix(), t.Format(timeLayout))
 
return
 
case 2:
 
data := strings.TrimSpace(os.Args[1])
 
unix, err := strconv.ParseInt(data, 10, 64)
 
if err == nil {
 
// 转换这种: stamp 1618624877
 
fmt.Println(time.Unix(unix, 0).Format(timeLayout))
 
return
 
}
 
// 转换这种: stamp "2006-01-02 15:04:05"
 
sData = strings.Fields(data)
 
case 3:
 
// 转换这种: stamp 2006-01-02 15:04:05
 
sData = []string{os.Args[1], os.Args[2]}
 
default:
 
fmt.Printf("usage:%s or %s [2006-01-02 15:04:05|1136185445]\n", os.Args[0], os.Args[0])
 
return
 
}
 
 
var ymd, hms [3]int // 计算年月日
 
for i, v := range strings.Split(strings.TrimSpace(sData[0]), "-") {
 
n, err := strconv.Atoi(v)
 
if err != nil {
 
panic(err)
 
}
 
ymd[i] = n
 
}
 
if len(sData) == 2 { // 计算时分秒
 
for i, v := range strings.Split(strings.TrimSpace(sData[1]), ":") {
 
n, err := strconv.Atoi(v)
 
if err != nil {
 
panic(err)
 
}
 
hms[i] = n
 
}
 
}
 
t := time.Date(ymd[0], time.Month(ymd[1]), ymd[2], hms[0], hms[1], hms[2], 0, time.Local)
 
fmt.Println(t.Unix())
 
}

使用方法:


			
copy
 
不带参数,获取当前时间戳和时间
 
c:\>stamp
 
1618626612 "2021-04-17 10:30:12" "20210417103012"
 
带一个参数,包含完整年月日,时分秒,返回时间戳
 
c:\>stamp "2021-04-17 11:22:41"
 
1618629761
 
带两个参数,第一个为年月日,第二个为时分秒
 
c:\>stamp 2021-04-17 12:22:41
 
1618633361
 
只传一串数字会被当做时间戳,返回对应时间
 
c:\>stamp 1618693361
 
"2021-04-18 05:02:41" "20210418050241"
 
直传年月,注意直数字会被当做时间戳转换
 
c:\>stamp 2021-4
 
1617120000
 
只传年月日
 
c:\>stamp 2021-4-18
 
1618675200
 
直传年月日,时
 
c:\>stamp 2021-4-18 14
 
1618725600
 
直传年月日,时分
 
c:\>stamp 2021-4-18 14:45
 
1618728300
 
直传年月日,时分秒
 
c:\>stamp 2021-4-18 14:45:32
 
1618728332

把这个小工具记录一下,后面需要用的时候可以方便点,提高效率。

作者:janbar
出处:https://www.cnblogs.com/janbar

相关教程