golang time包基本用法

package main

import (
	"fmt"
	"time"
)

func main() {

}

// 获取当前时间now
func time1() {
	//func Now() Time
	now := time.Now()
	//func (t Time) Year() int
	year := now.Year()
	//func (t Time) Month() Month
	//type Month int
	month := now.Month()
	day := now.Day()
	hour := now.Hour()
	minute := now.Minute()
	second := now.Second()

	// 2023-2-23 20:40:31
	// Printf : 整数补位--02如果不足两位,左侧用0补齐输出
	//2024-10-08 05:47:04

	fmt.Printf("%d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second)
}

func time2() {
	//打印时间
	now := time.Now()
	fmt.Println(now)
	// 时间格式化 2023-02-23 20:43:49
	// 以前的格式化模板: yyyy-MM-dd HH:mm:ss
	// Go语言诞生的时间作为格式化模板:2006年1月2号下午3点4分
	// Go语言格式化时间的代码:2006-01-02 15:04:05  (记忆方式:2006 12 345)
	// 固定的:"2006-01-02 15:04:05" 很有个性
	fmt.Println(now.Format("2006-01-02 15:04:05"))
	fmt.Println(now.Format("2006-01-02 03:04:05 PM")) // 12小时制
	fmt.Println(now.Format("2006/01/02 15:04"))
	fmt.Println(now.Format("15:04 2006/01/02"))
	fmt.Println(now.Format("2006/01/02"))
	//输出
	//2024-10-08 06:03:24
	//2024-10-08 06:03:24 AM
	//2024/10/08 06:03
	//06:03 2024/10/08
	//2024/10/08

}

// 将字符串格式化为Time对象 (获取到网页传递的时间字符串,需要转化为Time才能在代码中使用)
func time3() {
	//将字符串解析为时间
	time_str := "2024-10-08 06:03:24"

	// 其他地方的时区格式:https://www.zeitverschiebung.net/cn/all-time-zones.html
	// 获取时间的时区 //  "Asia/Shanghai" 必须要大写 手动构建 ,如果不对,会报未知的时间错误
	//func LoadLocation(name string) (*Location, error)
	loc, err := time.LoadLocation("Asia/Shanghai")
	if err != nil {
		fmt.Println(err)
		return
	}
	//获取时间的时区

	// layout 格式 时间字符串  时区位置 , 需要和前端传递的格式进行匹配
	//func Parse(layout, value string) (Time, error)
	//time.Parse()
	//func ParseInLocation(layout, value string, loc *Location) (Time, error)
	timeobj, _ := time.ParseInLocation("2006-01-02 15:04:05", time_str, loc)
	fmt.Println(timeobj)
	fmt.Printf("%T", timeobj)
}

// 时间戳:更多时候和随机数结合
func time4() {
	// 格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数
	// 时间戳 Unix : 1970.1.1 00:00:00 - 当下的一个毫秒数,Unix 时间戳,不会重复的。
	now := time.Now()
	//func (t Time) Unix() int64
	timestamp1 := now.Unix() // 时间戳
	//func (t Time) UnixNano() int64
	timestamp2 := now.UnixNano() //纳秒的时间数
	fmt.Println(timestamp1)
	fmt.Println(timestamp2)
	// 通过 Unix 转换time对象
	//func Unix(sec int64, nsec int64) Time
	timeobj := time.Unix(timestamp1, 0)
	fmt.Println(timeobj.Day())
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值