Go--时间日期相关
1 获取当天零点的时间戳
//当天0点的时间戳
//获取当前时间
t := time.Now()
nowTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
//转换为时间戳格式
timeSamp := nowTime.Unix()
fmt.Println(timeSamp)
2 获取次日零点的时间戳
//次日0点的时间戳
timeStr := time.Now().Format("2006-01-02")
//fmt.Println(timeStr)
//使用Parse 默认获取为UTC时区 需要获取本地时区 所以使用ParseInLocation
//t1, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr+" 23:59:59", time.Local)
t2, _ := time.ParseInLocation("2006-01-02", timeStr, time.Local)
//fmt.Println(t1.Unix() + 1)
fmt.Println(t2.AddDate(0, 0, 1).Unix())
3 获取昨天零点的时间戳
//昨天0点的时间戳
ts := time.Now().AddDate(0, 0, -1)
yesterDaytime := time.Date(ts.Year(), ts.Month(), ts.Day(), 0, 0, 0, 0, ts.Location())
yesterDayTimeSamp := yesterDaytime.Unix()
fmt.Println(yesterDayTimeSamp)
4 获取当前时间
//获取当前时间(字符串格式)
timeStr := time.Now().Format("2006-01-02 15:04:05")
fmt.Println(timeStr) //获取今天的日期
timeStr := time.Now().Format("2006-01-02")
fmt.Println(timeStr)
5 23:59:59的时间戳
当天:
// 获取当前时间
now := time.Now() // 将时间设置为23点59分59秒
t := time.Date(now.Year(), now.Month(), now.Day(), 23, 59, 59, 0, now.Location()) // 将时间转换为时间戳
timestamp := t.Unix()
昨天:
// 获取当前时间
now := time.Now() // 将时间减去一天
yesterday := now.AddDate(0, 0, -1) // 将时间设置为23点59分59秒
t := time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 23, 59, 59, 0, yesterday.Location()) // 将时间转换为时间戳
timestamp := t.Unix()
次日:
// 获取当前时间
now := time.Now() // 将时间加上一天
tomorrow := now.AddDate(0, 0, 1) // 将时间设置为23点59分59秒
t := time.Date(tomorrow.Year(), tomorrow.Month(), tomorrow.Day(), 23, 59, 59, 0, tomorrow.Location()) // 将时间转换为时间戳
timestamp := t.Unix()
6 判断输入的时间格式,并转换为时间戳
package main import (
"fmt"
"regexp"
"time"
) // 判断输入的时间是否为日期格式
func isDateFormat(input string) bool {
datePattern := `^\d{4}-\d{2}-\d{2}$` // 日期格式的正则表达式模式
match, _ := regexp.MatchString(datePattern, input)
return match
} // 判断输入的时间是否为日期+时间格式
func isDateTimeFormat(input string) bool {
dateTimePattern := `^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$` // 日期+时间格式的正则表达式模式
match, _ := regexp.MatchString(dateTimePattern, input)
return match
} func main() {
input := "2023-07-19 12:00:56" // 输入的时间字符串 // 判断输入的时间是日期格式还是日期+时间格式
isDateFormat := isDateFormat(input)
isDateTimeFormat := isDateTimeFormat(input) if isDateFormat {
// 如果是日期格式,转换为时间戳
layout := "2006-01-02" // 日期格式的格式
t, err := time.ParseInLocation(layout, input, time.Local) ////使用Parse的话默认为UTC时区,需要使用本地时区,用ParseInLocation()
if err != nil {
fmt.Println("无法解析日期:", err)
return
}
timestamp := t.Unix()
fmt.Println("日期格式的时间戳:", timestamp)
} else if isDateTimeFormat {
// 如果是日期+时间格式,转换为时间戳
layout := "2006-01-02 15:04:05" // 日期+时间格式的格式
t, err := time.ParseInLocation(layout, input, time.Local)
if err != nil {
fmt.Println("无法解析日期+时间:", err)
return
}
timestamp := t.Unix()
fmt.Println("日期+时间格式的时间戳:", timestamp)
} else {
fmt.Println("输入的时间格式无效")
}
}
Go--时间日期相关的更多相关文章
- 时间日期相关总结-System类的常用方法
时间日期相关总结 Date类 A.构造方法 Date();根据当前系统时间创建日期对象 Date(long time);根据传入的毫秒值时间创建日期对象 B.成员方法 long getTime(); ...
- 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类
日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...
- 【Android 应用开发】Android - 时间 日期相关组件
源码下载地址 : -- CSDN : http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...
- Android - 时间 日期相关组件
源码下载地址 : -- CSDN : http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...
- 时间日期相关:Date类、DateFormat类、Calendar类
1 Date类 类 Date 表示特定的瞬间,精确到毫秒. 1秒=1000毫秒 毫秒的0点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 时间和日期的计算,必须依赖毫秒值. Sys ...
- Java 各种时间日期相关的操作
目录 1.获取当前时间的时间戳 1.1.时间进制 1.2.获取毫秒级时间戳 1.3.获取纳秒级时间戳 2.java.util包 2.1.Data 2.2.Calendar 3.java.time包 3 ...
- Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题
笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...
- C++时间日期相关
// 计时 #pragma once #include <iostream> #include <thread> #include <chrono> #includ ...
- Java 8 时间日期库的20个使用示例
java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ...
- java8新的时间日期库及使用示例
转自:https://www.cnblogs.com/comeboo/p/5378922.html 来自:Java译站 链接:http://it.deepinmind.com/java/2015/03 ...
随机推荐
- Cadence SPB 22.1 -- 原理图的电器元件放置03Day
1.新增原理图:"SCHEMATIC"-->"New Page" 2.元器件放置 ①.添加原理图库 ②.放置元器件 选择对应元件库,再选择需要放置的元件, ...
- 最全的VLOOKUP应用教程
VLOOKUP是Excel中最常用的函数之一,它可以让我们在一个表格中查找指定值,并返回与该值匹配的另一个单元格中的内容. 在这篇文章中,我们将深入探讨VLOOKUP的使用方法,从而为您提供一份史上最 ...
- java-EasyExcel模板导出
前言: 需求:根据自定义模板导出Excel,包含图片.表格,采用EasyExcel 提示:EasyExcel请使用 3.0 以上版本, 对图片操作最重要的类就是 WriteCellData<V ...
- 【漏洞分析】Reflection Token 反射型代币攻击事件通用分析思路
在本篇文章中,我将通过一个攻击事件引出 Reflection Token 攻击事件的一个通用分析思路. 关于 Reflection Token 的其他案例分析,可以参考BEVO代币攻击事件分析及复现一 ...
- hszxoj 货车运输 [lca]
题目链接: hszxoj 货车运输 题目描述与思路 简化题目: 求 \(x\)到 \(y\) 两点间路径的边权最小值的最大值 与之前的最短路最大的不同是这道题是多源最短路,那么 \(spfa\) 就废 ...
- 三维GIS引擎用什么好?结合目前市面上的主流引擎进行分析
相信大多数人在谈到三维GIS引擎时,第一个想到的首先是CesiumJS,CesiumJS以其免费开源的特点,快速占领了三维GIS这个领域,同时也催生了许多以CesiumJS为基础的衍生产品.Cesiu ...
- 【源码系列#04】Vue3侦听器原理(Watch)
专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 语法 侦听一个或多个响应式数据源,并在数据源变化时调用所给的回调函数 ...
- 使用.NET Core接入飞书AI
飞书AI接入教程 首先,准备俩个账号:ChatGPT账号.飞书账号. 飞书账号请自行注册,访问链接 www.feishu.cn/ 即可登录. 第一步,飞书进入开发者平台.点击创建应用. 填写应用名称和 ...
- vscode下载
vscode下载 想下载官网可以直接去官网下载(速度超慢~) 百度网盘链接: 链接:https://pan.baidu.com/s/14DfWI5b2HA_J_kHBcu8JQw?pwd=yyds 提 ...
- postman——请求与相应
一.新建一个项目 直接点击左边栏上面的添加目录图标来新增一个根目录,这样就等于新建了一个项目,我们可以把一个项目或一个模块的用例都存放在这个目录之下,并且在根目录之下我们还可以在建立子目录来进行功能用 ...