zoukankan      html  css  js  c++  java
  • 时间戳转换小工具

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

    源码鉴赏:

    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]
    ", 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())
    }
    

    使用方法:

    不带参数,获取当前时间戳和时间
    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
    本文版权归作者和博客园所有,欢迎转载,转载请标明出处。喜欢我的文章请 [关注我] 吧。
    如果您觉得本篇博文对您有所收获,可点击 [推荐] [收藏] ,或到右侧 [打赏] 里请我喝杯咖啡,非常感谢。
  • 相关阅读:
    算法复习:字符串
    【第五天打卡。
    【第四天打卡。
    【第三天打卡。
    第二天打卡。
    【唉
    配环境到崩溃系列
    所谓环境……
    【随便吐槽
    第四天。打卡。【偷懒了两天hhhh
  • 原文地址:https://www.cnblogs.com/janbar/p/14669685.html
Copyright © 2011-2022 走看看