golang 一些时间问题

1 时间格式化

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()
	fmt.Println(now.Format("2006-01-02 15:04:05"))
}

程序运行结果
在这里插入图片描述
go的时间格式化比较奇怪 不同于java的 yyyy-MM-dd HH:mm:ss
而是采用了一个指定的时间(2006-01-02 15:04:05)

编程语言时间单位时间格式
javayyyy
golang2006
javaMM
golang01
javadd
golang02
javaHH
golang15
javamm
golang04
javass
golang05

2 时间解析时区问题

package main

import (
	"fmt"
	"time"
)

func main() {

	//要解析的时间
	parseTime := "2019-09-27 09:26:31"
	//当前时间
	now := time.Now()
	//时间解析
	compareTime, _ := time.Parse("2006-01-02 15:04:05", parseTime )

	fmt.Println("当前时间 ",now.Format("2006-01-02 15:04:05"))
	fmt.Println("解析时间 ",compareTime.Format("2006-01-02 15:04:05"))

	fmt.Println()

	/*
		时间比较
		判断解析出的时间是否小于当前时间
		如果是打印 解析时间
		如果否打印 当前时间
	 */
	if now.After(compareTime)  {
		fmt.Println("解析时间 ",compareTime.Format("2006-01-02 15:04:05"))
	} else {
		fmt.Println("当前时间 ",now.Format("2006-01-02 15:04:05"))
	}
}

执行结果
在这里插入图片描述
很明显解析出的时间要小于当前时间,但是打印出的确是当前时间
尝试直接打印出时间观察两者区别

	fmt.Println(compareTime)
	fmt.Println(now)

结果
在这里插入图片描述
发现存在时区问题

修改代码

package main

import (
	"fmt"
	"time"
)

func main() {

	//要解析的时间
	parseTime := "2019-09-27 09:26:31"
	//当前时间
	now := time.Now()
	//时间解析为本地时区时间
	compareTime, _ := time.ParseInLocation("2006-01-02 15:04:05", parseTime , time.Local)

	fmt.Println("当前时间 ",now.Format("2006-01-02 15:04:05"))
	fmt.Println("解析时间 ",compareTime.Format("2006-01-02 15:04:05"))

	fmt.Println()

	/*
		时间比较
		判断解析出的时间是否小于当前时间
		如果是打印 解析时间
		如果否打印 当前时间
	 */
	if now.After(compareTime)  {
		fmt.Println("解析时间 ",compareTime.Format("2006-01-02 15:04:05"))
	} else {
		fmt.Println("当前时间 ",now.Format("2006-01-02 15:04:05"))
	}
}

结果正常
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值