首页 > 其他分享 >day6 golang-标准库(随时更新)

day6 golang-标准库(随时更新)

时间:2023-02-19 20:55:53浏览次数:38  
标签:02 parse day6 fmt 2023 golang time Println 随时

time时间库

 

package main

import (
	"fmt"
	"time"
)

func main() {
	t := time.Now()
	//time.Time time.Date(2023, time.February, 19, 14, 38, 1, 393023500, time.Local) 2023-02-19 14:38:01.3930235 +0800 CST m=+0.008177501
	fmt.Printf("%T %#v %v\n", t, t, t)
	//2023-02-19 06:38:42.351399 +0000 UTC
	fmt.Printf("%v\n", t.UTC())
	//time.Date(2023, time.February, 19, 6, 39, 44, 393454500, time.UTC)
	fmt.Printf("%#v\n", t.UTC())
	//2023/02/19 14:40:40 +0800
	fmt.Println(t.Format("2006/01/02 15:04:05 -0700"))
	//2023/02/19 14:40:40
	fmt.Println(t.Format("2006/01/02 15:04:05"))
	//2023/02/19 06:41:41
	fmt.Println(t.UTC().Format("2006/01/02 15:04:05"))

	println("========================")
	//根据字符串 格式化成时间 格式要一毛一样
	timeStr := "2023#02/19\t14$42:23"
	parse, err := time.Parse("2006#01/02\t15$04:05", timeStr)
	if err != nil {
		fmt.Println("faile`")
	} else {
		//2023-02-19 14:42:23 +0000 UTC 注意时区
		fmt.Println("success:", parse)
	}
	fmt.Println(parse.Location()) //UTC 返回parse时区
	fmt.Println(parse.Local())    //2023-02-19 22:42:23 +0800 CST 时间加了8小时转到了CST

	//加上时区 把时间格式化成真正的当地时间和时区
	loc, _ := time.LoadLocation("Asia/Shanghai")
	t1, err := time.ParseInLocation("2006#01/02\t15$04:05", timeStr, loc)
	if err != nil {
		fmt.Println("fail")
	} else {
		//2023-02-19 14:42:23 +0800 CST
		fmt.Println("t1:", t1)
	}

	//时间成分
	fmt.Println(
		//2023 February 2 19
		parse.Year(), parse.Month(), int(parse.Month()), parse.Day(),
		//50
		parse.YearDay(),
		//14 42 23
		parse.Hour(), parse.Minute(), parse.Second(),
		"\n",
		//时间戳
		parse.Unix(), parse.UnixMilli(), parse.UnixMicro(),
	)

	//小数部分匹配,可以使用0或9,0需要和小数部分个数匹配,9不需要
	//time.Parse(
	//	"2006/01/02 15:04:05.000 -0700",
	//	"2008/09/08 20:36:50.123 +0800"
	//	)
	//time.Parse(
	//	"2006/01/02 15:04:05.9 -0700",
	//	"2008/09/08 20:36:50.1234 +0800"
	//	)

	//时间增量
	println("===========")
	delta := t.Sub(t1) //duration类型
	//5h59m18.468554s 5.988463487222222 21558.468554 5h59m18.468554s
	fmt.Println(delta, delta.Hours(), delta.Seconds(), delta.String())

	d1 := time.Duration(3) //3纳秒 3ns
	fmt.Println(d1)
	//3s 3h0m0s
	fmt.Println(time.Duration(3*time.Second), time.Duration(3*time.Hour))
	t2 := t1.Add(time.Duration(3 * time.Second))
	//t2: 2023-02-19 14:42:26 +0800 CST
	fmt.Println("t2:", t2)
	//2023-02-19 14:42:20 +0800 CST
	fmt.Println(t1.Add(-time.Duration(3 * time.Second)))
	fmt.Println(t2.After(t))  //false
	fmt.Println(t2.After(t1)) //true
}

  

标签:02,parse,day6,fmt,2023,golang,time,Println,随时
From: https://www.cnblogs.com/dribs/p/17135561.html

相关文章

  • Golang接口
    理解go中的接口,首先从java的入手圆形和长方形是不同形状,因此他们是两个类,circle和rectangle在java中,他们应当拥有一个公共父类,即形状shape无论哪种形状,都应当是可计算面......
  • golang执行命令 && 实时获取输出结果
    背景golang可以获取命令执行的输出结果,但要执行完才能够获取。如果执行的命令是ssh,我们要实时获取,并执行相应的操作呢?示例funcmain(){ user:="root" host:="......
  • Golang数据结构
    数据类型不同类型的内存样式图查看变量类型使用fmt.Printfpackagemainimport"fmt"funcmain(){str:="Helloworld"fmt.Printf("%T",str)}使用re......
  • Golang基础-随机数
    import"math/rand"n:=rand.Intn(100)//nisarandomint,0<=n<100f:=rand.Float64()//fisarandomfloat64,0.0<=f<1.0x:=[]string{"a","b",......
  • Golang基础-Structs与Methods
    将struct定义为一种类型CarNewCar函数return&Car{},返回指针//car.gopackageelon//Carimplementsaremotecontrolledcar.typeCarstruct{ speed......
  • golang 数组
    1.概念golang中的数组是具有固定长度及相同数据类型的序列集合2.初始化数组var数组名[数组大小]数据类型packagemainimport"fmt"funcmain(){ //第一种 v......
  • Golang字符串拼接
    使用+funcplusConcat(nint,strstring)string{ s:="" fori:=0;i<n;i++{ s+=str } returns}使用fmt.SprintffuncsprintfConcat(nint,str......
  • Golang基础-Switch
    不需要手动breakdefault是找不到case时执行可以对多个case执行同样的操作operatingSystem:="windows"switchoperatingSystem{case"windows","linux"://......
  • golang for 循环
    1.for循环for循环是Golang唯一的循环语句。for初始表达式;布尔表达式;迭代因子{循环体;}packagemainimport"fmt"funcmain(){ fori:=0;i<5;i++{......
  • golang 单测运行单个函数、文件、跳过文件命令
    1、单测运行1.2运行某个单测函数gotest-v-run=xxx,xxx是函数名,支持正则表达式;参数-v说明需要打印详情提示Golang单测是根据前缀匹配来执行的,gotest-v-run=......