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--时间日期相关的更多相关文章

  1. 时间日期相关总结-System类的常用方法

    时间日期相关总结 Date类 A.构造方法 Date();根据当前系统时间创建日期对象 Date(long time);根据传入的毫秒值时间创建日期对象 B.成员方法 long getTime(); ...

  2. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

  3. 【Android 应用开发】Android - 时间 日期相关组件

    源码下载地址 : -- CSDN :  http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...

  4. Android - 时间 日期相关组件

    源码下载地址 : -- CSDN :  http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...

  5. 时间日期相关:Date类、DateFormat类、Calendar类

    1 Date类 类 Date 表示特定的瞬间,精确到毫秒. 1秒=1000毫秒 毫秒的0点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 时间和日期的计算,必须依赖毫秒值. Sys ...

  6. Java 各种时间日期相关的操作

    目录 1.获取当前时间的时间戳 1.1.时间进制 1.2.获取毫秒级时间戳 1.3.获取纳秒级时间戳 2.java.util包 2.1.Data 2.2.Calendar 3.java.time包 3 ...

  7. Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题

    笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...

  8. C++时间日期相关

    // 计时 #pragma once #include <iostream> #include <thread> #include <chrono> #includ ...

  9. Java 8 时间日期库的20个使用示例

    java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ...

  10. java8新的时间日期库及使用示例

    转自:https://www.cnblogs.com/comeboo/p/5378922.html 来自:Java译站 链接:http://it.deepinmind.com/java/2015/03 ...

随机推荐

  1. Cadence SPB 22.1 -- 原理图的电器元件放置03Day

    1.新增原理图:"SCHEMATIC"-->"New Page" 2.元器件放置 ①.添加原理图库 ②.放置元器件 选择对应元件库,再选择需要放置的元件, ...

  2. 最全的VLOOKUP应用教程

    VLOOKUP是Excel中最常用的函数之一,它可以让我们在一个表格中查找指定值,并返回与该值匹配的另一个单元格中的内容. 在这篇文章中,我们将深入探讨VLOOKUP的使用方法,从而为您提供一份史上最 ...

  3. java-EasyExcel模板导出

    前言:  需求:根据自定义模板导出Excel,包含图片.表格,采用EasyExcel 提示:EasyExcel请使用 3.0 以上版本, 对图片操作最重要的类就是 WriteCellData<V ...

  4. 【漏洞分析】Reflection Token 反射型代币攻击事件通用分析思路

    在本篇文章中,我将通过一个攻击事件引出 Reflection Token 攻击事件的一个通用分析思路. 关于 Reflection Token 的其他案例分析,可以参考BEVO代币攻击事件分析及复现一 ...

  5. hszxoj 货车运输 [lca]

    题目链接: hszxoj 货车运输 题目描述与思路 简化题目: 求 \(x\)到 \(y\) 两点间路径的边权最小值的最大值 与之前的最短路最大的不同是这道题是多源最短路,那么 \(spfa\) 就废 ...

  6. 三维GIS引擎用什么好?结合目前市面上的主流引擎进行分析

    相信大多数人在谈到三维GIS引擎时,第一个想到的首先是CesiumJS,CesiumJS以其免费开源的特点,快速占领了三维GIS这个领域,同时也催生了许多以CesiumJS为基础的衍生产品.Cesiu ...

  7. 【源码系列#04】Vue3侦听器原理(Watch)

    专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 语法 侦听一个或多个响应式数据源,并在数据源变化时调用所给的回调函数 ...

  8. 使用.NET Core接入飞书AI

    飞书AI接入教程 首先,准备俩个账号:ChatGPT账号.飞书账号. 飞书账号请自行注册,访问链接 www.feishu.cn/ 即可登录. 第一步,飞书进入开发者平台.点击创建应用. 填写应用名称和 ...

  9. vscode下载

    vscode下载 想下载官网可以直接去官网下载(速度超慢~) 百度网盘链接: 链接:https://pan.baidu.com/s/14DfWI5b2HA_J_kHBcu8JQw?pwd=yyds 提 ...

  10. postman——请求与相应

    一.新建一个项目 直接点击左边栏上面的添加目录图标来新增一个根目录,这样就等于新建了一个项目,我们可以把一个项目或一个模块的用例都存放在这个目录之下,并且在根目录之下我们还可以在建立子目录来进行功能用 ...