在我们编程过程中,经常会用到与时间相关的各种务需求,下面来介绍 golang 中有关时间的一些基本用法,我们从 time 的几种 type 来开始介绍。
时间可分为时间点与时间段,golang 也不例外,提供了以下两种基础类型
我们将按以上顺序来介绍 time 包的使用。
我们使用的所有与时间相关的业务都是基于点而延伸的,两点组成一个时间段,大多数应用也都是围绕这些点与面去做逻辑处理。
go 针对不同的参数类型提供了以下初始化的方式
获取到时间点之后为了满足业务和设计,需要转换成我们需要的格式,也就是所谓的时间格式化。
格式化为字符串我们需要使用 time.Format 方法来转换成我们想要的格式
Format 函数中可以指定你想使用的格式,同时 time 包中也给了一些我们常用的格式
// 获取指定日期的时间戳
time 包还提供了一些常用的方法,基本覆盖了大多数业务,从方法名就能知道代表的含义就不一一说明了。
介绍完了时间点,我们再来介绍时间段,即 Duartion 类型, 我们业务也是很常用的类型。
我们在来介绍一下时区的相关的函数
// 服务器设定的时区,一般为CST // 获取指定时区的时间点
好了,基础的类型我们介绍完,现在开始时间运算相关的函数,也是日常业务中我们大量应用的。
我们大概就介绍完了多数涉及时间点与时间段的函数,接下面我们通过一些使用场景来做一些演示。
// 不用关注时区,go会转换成时间戳进行计算
基于当前时间的前后运算
// 一年零一个月一天之后 // 计算两个时间点的相差天数
// 当前时间转为指定时区时间 // 指定时间转换成指定时区对应的时间 // 当前时间在零时区年月日 时分秒 时区
// 是否相等 判断两个时间点是否相等时推荐使用 Equal 函数
通过time.After 函数与 select 结合使用可用于处理程序超时设定
Ticker 类型包含一个 channel,有时我们会遇到每隔一段时间执行的业务(比如设置心跳时间等),就可以用它来处理,这是一个重复的过程
Timer 类型用来代表一个单独的事件,当设置的时间过期后,发送当前的时间到 channel, 我们可以通过以下两种方式来创建
以上两函数都可以使用 Reset, 这个有个需要注意的地方是使用 Reset 时需要确保 t.C 通道被释放时才能调用,以防止发生资源竞争的问题,可通过以下方式解决
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
补充:整形转日期字符串
要定时执行的话,参考之前的一篇:
Angularjs内置的过滤器(filter)为我们的数据信息格式化提供了比较强大的功能,比如:格式化时间,日期.格式化数字精度.语言本地化.格式化货币等等.但这些过滤器一般都是在VIEW中使用的,比 ...
前言 本文的日期/时间全部格式化为” 01:01:01“形式: MONITOR_TIME为数据库表字段: 字符串与日期/时间相互转换函数 Oracle 日期/时间转字符串函数:to ...
MVVM正常就是在View页面写样式,ViewModel页面写逻辑,但是有的时候纯在View页面写样式并不能满足需求.我最近的这个项目就遇到了,因此只能在VM页面去写样式控件,然后绑定到View页面. ...
首先,说说什么事务(Transaction). 事务,就是一组操作数据库的动作集合.事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务.当 ...
对于大多数需要来说,当我们需要计算两个向量相加时,我们需要分别对这两个向量的元素进行遍历,所以写起来非常的麻烦.下面看看R语言是如何实现的. 首先,将1:5赋予一个名为x的向量 > X<- ...
[Luogu2458]保安站岗(动态规划) 题面 题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序. 已知整个地 ...
1.变量的命名规则 变量其实通过一个标记调用内存中的值,而变量名就是这个标记的名称,但是万一这个标记已经被提前占用或者解释器认为这个标记是不合法的,那么就会报错.下面总结了一下变量的命名规则: 1.不 ...
如果一个元素脱离文档流了,是不是只是显示上脱离而已?在html中是否也会脱离?我用js取这个元素的父节点的childNodes还能否取到这个元素:同时,这个元素的parentNode还是不是html中 ...
输入日期,如2018年11月07日,输出对应的星期数代码如下:
// 历史上的某一天是星期几?未来的某一天是星期几? // 公式中的符号含义如下,w:星期; // m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算) // []代表取整,即只要整数部分 // 注:C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值
以上所述就是小编给大家介绍的《根据输入的日期(年月日)判断是星期几——golang实现》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 的支持!
}版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。