go time

常用标准库
时间

Go语言没有采用%Y%m%d这样的格式化符号,它很特别。
记住一个字符串"010203040506pm-0700",即 1月2日下午3点4分5秒06年西7区 ,改成我们习惯的格式
符 2006/01/02 15:04:05 -0700 ,也不是特别好记,这点要背。

文档
https://pkg.go.dev/time#pkg-constants

Year: "2006" "06"
Month: "Jan" "January" "01" "1"
Day of the week: "Mon" "Monday"
Day of the month: "2" "_2" "02" 2不补位;_2补空格;02不够补0
Day of the year: "__2" "002"
Hour: "15" "3" "03" (PM or AM) 如果写303显示为12小时制;15显示为24小时制
Minute: "4" "04"
Second: "5" "05"
AM/PM mark: "PM"
"-0700" ±hhmm 时区
09匹配小数部分格式化时,09表示小数部分位数,0超出部分补0,9超出部分不补0时间解析
带小数部分解析
.0 解析时,0的位数必须和字符串中的小数部分位数完全一致,否则失败
.9 解析时,可以匹配任意位数小数部分,包括没有小数部分

时间属性

var t = time.Now()
fmt.Printf("%T, %[1]v\n", t)
fmt.Println(t.Format("2006/01/02 15:04:05 -0700")) // 带时区
fmt.Println(t.UTC().Format("2006/01/02 15:04:05.0000")) // 不带时区
if t, err := time.Parse("2006/01/02 15:04:05 -0700", // 格式字符串"2008/09/08 20:36:50 +0800", // 时间字符串
); err == nil {fmt.Println(t) // 2008-09-08 20:36:50 +0800 CST
} else {fmt.Println(err)
}time.Parse("2006/01/02 15:04:05.000000 -0700", // 格式字符串"2008/09/08 20:36:50.123456 +0800", // 时间字符串)
time.Parse("2006/01/02 15:04:05.9 -0700",      // 格式字符串"2008/09/08 20:36:50.123456 +0800", // 时间字符串)

// 月份的定义

type Month int
const (January Month = 1 + iotaFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember
)
// 可以看出月份是1到12的整数时区
如果没有时区,表示UTC,可以简单认为是零时区时间。
注意,这里可能导致时间错误,给出的时间,心里想的是东八区的时间,但是Go语言却认为是零时区
的,如果再转换到东八区,就差了8个小时了。
type Weekday int
const (Sunday Weekday = iotaMondayTuesdayWednesdayThursdayFridaySaturday
)
if t, err := time.Parse("2006/01/02 15:04:05 -0700", // 格式字符串"2008/09/08 20:36:50 +0800", // 时间字符串
); err == nil {// 2008-09-08 20:36:50 +0800 CST// 时间戳fmt.Println(t.Unix(), t.UnixMilli(), t.UnixMicro(), t.UnixNano())// 年月日fmt.Println(t.Year(), t.Month(), t.Month().String(), // 英文月份,默认走String方法int(t.Month()),       // 数字月份 9t.Day(),t.YearDay(), // YearDay本年的第几天)// 时分秒fmt.Println(t.Hour(), t.Minute(), t.Second(), t.Nanosecond()) //
Nanosecond纳秒// 星期fmt.Println(t.Weekday(), int(t.Weekday())) // Weekdayfmt.Println(t.ISOWeek())                   // 年的第几周
}if t, err := time.Parse("2006/01/02 15:04:05", // 格式字符串"2008/09/08 20:36:50", // 时间字符串
); err == nil {fmt.Println(t)         // 2008-09-08 20:36:50 +0000 UTCfmt.Println(t.Local()) // 2008-09-09 04:36:50 +0800 CST
}

时间运算

tz, _ := time.LoadLocation("Asia/Shanghai") // 使用名字
if t, err := time.ParseInLocation("2006/01/02 15:04:05", // 格式字符串"2008/09/08 20:36:50", // 时间字符串tz,
); err == nil {fmt.Println(t)         // 2008-09-08 20:36:50 +0800 CSTfmt.Println(t.Local()) // 2008-09-08 20:36:50 +0800 CST
}时间 + 时间 = ?
时间 - 时间 = 时间差、时间增量
时间 ± 时间增量 = 时间tz, _ := time.LoadLocation("Asia/Shanghai") // 使用名字
s1 := "2022/09/08 20:36:50"
s2 := "2022/09/08 21:40:51"
layout := "2006/01/02 15:04:05"
t1, _ := time.ParseInLocation(layout, s1, tz)
t2, _ := time.ParseInLocation(layout, s2, tz)
fmt.Println(t1)
fmt.Println(t2)// 时间差
delta := t2.Sub(t1) // t2 - t1
fmt.Printf("delta: %v, %[1]T\n", delta) // Duration类型
fmt.Println(delta.Seconds()) // 共差多少秒
// 构造Duration
ns3 := time.Duration(3)              // 3纳秒
s3 := time.Duration(3 * time.Second) // 3秒
h3 := time.Duration(3 * time.Hour)   // 3小时
fmt.Println(ns3, s3, h3)// 时间偏移
t3 := t2.Add(h3)
fmt.Println(t3)
t4 := t2.Add(-h3)
fmt.Println(t4)
fmt.Println(t3.After(t4)) // t3是否在t4之后吗?true
秒:秒 可以使用 time.Second 表示1秒。
毫秒:毫秒是秒的千分之一, 在Go中,可以使用 time.Millisecond 表示1毫秒。
纳秒:纳秒是秒的十亿分之一, 在Go中,可以使用 time.Nanosecond 表示1纳秒time.Now().UnixNano() / int64(time.Millisecond) //现在的毫秒级时间戳

---------------end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

13.postgresql--函数

文章目录 标量示例复合示例有返回值函数返回voidRETURN NEXT ,RETURN QUERYRETURN EXECUTEIF THEN END IFFOREACH,LOOPSLICE (1)如果函数返回一个标量类型,表达式结果将自动转行成函数的返回类型。但要返回一个复合(行&#xff09…

[javascript核心-09] 彻底解决js中的类型检测方案

typeof 基于数据类型的值(二进制)进行检测返回结果为字符串typeof NaN结果为numbertypeof null结果为Object.对象存储以000开头,而null也是如此。typeof不能细分对象,结果都是Objecttypeof function(){}结果为function instanceof 检测某个构造函数是…

Windows沙盒的安装与配置

沙盒安装 1、打开控制面板 2、选择程序与功能 3、勾选Windows 沙盒,然后点击确定,等待安装完成即可。 沙盒配置 Windows 沙盒支持简单的配置文件,这些文件为沙盒提供最少的自定义参数集。 此功能可与 Windows 10 内部版本 18342 或 Windows…

使用selenium模拟登录解决滑块验证问题

目录 1.登录入口 2.点击“账号密码登录” 3.输入账号、密码并点击登录 4.滑块验证过程 5.小结 本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录&#x…

wpf中窗体的移动通用解决方法

需求背景:设置了不允许改变窗口大小(在Window标签中设置ResizeMode为NoResize),之后窗口无法被拖动 1.在Window标签中添加’MouseLeftButtonDown‘,并且生成事件处理程序 2.到后台的相应事件处理程序中添加 base.OnMouseLeftButtonDown(e); …

python pytest脚本执行工具

pytest脚本执行工具 支持获取当前路径下所有.py脚本 添加多个脚本,一起执行 import tkinter as tk from tkinter import filedialog import subprocess import os from datetime import datetimedef select_script():script_path filedialog.askopenfilename(fil…

ChatGPT的使用指南:探索与利用先进对话模型的技巧与方法

ChatGPT是一种先进的对话生成模型,通过模拟自然语言交互,能够与人类用户进行流畅的对话。为了帮助用户更好地利用ChatGPT,本文将介绍ChatGPT的基本用法、优化技巧以及注意事项,以便读者能够最大程度地发挥其潜力。 基本用法 输入…

限时购LimitTimeApplication

目录 1 限时购LimitTimeApplication 1.1 商家删除限时购 1.2 根据商品Id获取一个限时购的详细信息 1.3 获取详情 限时购LimitTimeApplication /// <summary>

SQL小示例

SQL示例 一、前言 安装MySQL 启动MySQL MySQL is configured to only allow connections from localhost by defaultTo connect run:mysql -u rootTo start mysql now and restart at login:brew services start mysql下载客户端工具Sequel Ace并登录 二、示例SQL where过…

windows安装使用 tesseract-ocr

OCR&#xff08;Optical character recognition&#xff0c;光学字符识别&#xff09;是一种将图像中的手写字或者印刷文本转换为机器编码文本的技术。 tesseract-ocr 是由Google开发&#xff0c;支持100多种语言 文档 tessdoc&#xff1a; https://tesseract-ocr.github.io…

浅谈炼钢厂能源计量管理系统的设计与应用

安科瑞 华楠 摘要: 从能源计量和管理的角度&#xff0c;论述了炼钢厂的能源计量管理系统的基本组成及功能。该系统的建立&#xff0c;将使炼钢厂能源介质的计量管理工作实现自动采集、瞬时监测、故障报警、能流监视&#xff1b;完成报表统计、离线输入、成本分析、预测参考等功…

【Java项目实战-牛客社区】--idea创建springboot工程

①. 创建springboot工程&#xff0c;并勾选web开发相关依赖。 。配置Maven ②. 定义Controller类&#xff0c;添加方法 hello。 ③. 运行测试1 使用Spring Initializr方式构建Spring Boot项目 Spring Initializr是一个Web应用&#xff0c;它提供了一个基本的项目结构&#xff…

ansible特点、工具合集、搭建、命令合集

目录 一、ansible特点 二、ansible应用 三、ansible搭建 1、 实验环境&#xff0c;准备三台服务器&#xff0c;关闭防火墙 2、在ansible&#xff08;192.168.1.12&#xff09;服务器上yum安装ansible 3、创建ssh免交互登录 四、ansible配置 五、ansible命令 1&#xf…

手机外壳缺陷视觉检测软硬件方案

单独使用一种光源效果图 同轴光会出现亮度不够的情况&#xff1b;回形面光因为光源中间的圆孔会使图像有阴影&#xff0c;造成图像效果不均衡&#xff0c;所以不采用单独光源打光 使用同轴回形面光源效果图 回形光源照亮产品要寻找的边缘&#xff0c;同轴光源起到补光的作用&a…

SpringCloud学习路线(6)—— 远程调用HTTP客户端Feign

一、Feign替代RestTemplate RestTemplate示例 String url "http://userservice/user/" order.getUserId(); User user restTemplate.getForObject(url, User.class);RestTemplate的缺陷&#xff1a; 代码可读性差&#xff0c;编码体验不统一。参数复杂URL难以维…

需求分析案例:全局错误码设计

本文介绍了我在一些业务系统中遇到的错误提示问题&#xff0c;以及进行需求分析和设计实现的过程&#xff0c;欢迎进行交流和指点&#xff0c;一起进步。 1、需求起源 作为程序员&#xff0c;或多或少&#xff0c;都经历过如下场景&#xff1a; 场景1&#xff1a; 产品经理&a…

智慧校园能源管控系统

智慧校园能源管控系统是一种搭载了物联网技术、大数据技术、大数据等技术性智能化能源管理方法系统&#xff0c;致力于为学校提供更高效、安全性、可信赖的能源供应管理和服务。该系统包括了校内的电力工程、水、气、暖等各类能源&#xff0c;根据对能源的实时检测、数据统计分…

Django 创建应用

第一步&#xff1a;python.exe .\manage.py startapp submit_score 创建后生成的submit_score文件夹&#xff0c;里面文件如下&#xff1a; PS E:\code\portrait> python.exe .\manage.py startapp submit_score PS E:\code\portrait> ls目录: E:\code\portraitMode …

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;63&#xff09;-- 算法导论6.5 2题 二、试说明 MAX-HEAP-INSERT(A&#xff0c;10)在堆A(15&#xff0c;13&#xff0c;9&#xff0c;5&#xff0c;12&#xff0c;8&#xff0c;7&#xff0c;4&#xff0c;0&#xff0c;6&#xf…

leetcode 13. 罗马数字转整数

罗马转整数要考虑先后顺序 当排在前面的罗马数字大于后面的罗马数字&#xff0c;就正常化成阿拉伯数字相加 如果小&#xff0c;那就是将小的数转成负数&#xff0c;再加就ok。 但也是需要模拟的&#xff0c;就是哪一字母代表哪个数值。 class Solution:def romanToInt(self, s…