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 ...
随机推荐
- Markdown & typora 速查
Markdown & typora 速查 一级标题 # 一级标题 说明:#数量表示几级标题,如二级标题为"## 二级标题",支持到6级标题,#和标题中间有一个空格 typo ...
- Vue02-小案例(购物车功能)
效果图 主要代码 index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- springboot集成mybatis-plus
集成mybatis-plus 1.添加pom.xml <!--mp逆向工程 --> <dependency> <groupId>org.projectlombok& ...
- 什么是cursor?怎么使用cursor?
Cursor 在Android查询数据时就是通过Cursor类来实现的.当我们使用SQLiteDatabase.query()方法时,就会得到Cursor对象,Cursor所指向的就是每一条数据. 举 ...
- 文心一言 VS 讯飞星火 VS chatgpt (149)-- 算法导论12.2 4题
五.用go语言,证明:如果一棵二叉搜索树中的一个结点有两个孩子,那么它的后继没有左孩子,它的前驱没有右孩子. 灵捷3.5 . 文心一言: 为了证明这个性质,我们首先需要明确二叉搜索树(BST)的定义和 ...
- 【工具推荐】LICEcap –GIF 屏幕录制工具
介绍: LICEcap 是一款简洁易用的动画屏幕录制软件,支持导出 GIF 动画图片格式,轻量级.高质量(每帧颜色数量可超过256).使用简单,录制过程中可以随意改变录屏范围. LICEcap 非常轻 ...
- 5分钟搞懂Kubernetes:轻松理解所有组件
之前我曾经提到了一系列关于服务网格的内容.然而,我意识到有些同学可能对Kubernetes的了解相对较少,更不用说应用服务网格这个概念了.因此,今天我决定带着大家快速理解Kubernetes中的一些专 ...
- Java8新特性Optional
Optional类的方法 1.empty private static void createNullOptional() { // 创建一个空的Optional实例 // 方式一 Optional& ...
- 记一次 .NET 某药厂业务系统 CPU爆高分析
一:背景 1. 讲故事 前段时间有位朋友找到我,说他们的程序出现了CPU爆高,让我帮忙看下怎么回事?这种问题好的办法就是抓个dump丢给我,推荐的工具就是用 procdump 自动化抓捕. 二:Win ...
- redis集群搭建注意事项
官方教程:https://redis.io/docs/management/scaling/ 其他参考: https://note.youdao.com/ynoteshare/index.html?i ...