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. AcWing 190. 字串变换

    原题连接:AcWing 190. 字串变换 题意: 已知有两个字串 \(A, B\) 及一组字串变换的规则(至多 \(6\) 个规则): \(A_1→B_1\) \(A_2→B_2\) \(-\) 规 ...

  2. 【Javaweb】tomcat目录介绍

    bin 专门用来存放tomcat服务器的可执行程序 conf 专门用来存放tomcat服务器的配置文件 lib 专门用来存放tomcat服务器的jar包 logs 专门用来存放tomcat服务器运行时 ...

  3. 【UniApp】-uni-app-扩展组件

    前言 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-内置组件 那么了解完了uni-app-内置组件之后,这篇文章来给大家介绍一下 UniApp 中的扩展组件 首先不管三七二十一,先来新建 ...

  4. jdk11的HttpClient

    我们都知道在jdk11之前都在用okhttp或者org.apache.httpcomponents  其实早在jdk9的时候这个方案就在孵化中 上面的截图来自openjdk的官网,注:openjdk是 ...

  5. Mybatis-Flex核心功能之@Table

    1.能干啥? @Table 主要是用于给 Entity 实体类添加标识,用于描述 实体类 和 数据库表 的关系,以及对实体类进行的一些 功能辅助. 例如: 数据库有一张tb_member的会员表 这时 ...

  6. Scrapy-settings.py常规配置

    # Scrapy settings for scrapy_demo project # # For simplicity, this file contains only settings consi ...

  7. python tkinter 使用(八)

    python tkinter 使用(八) 本文主要讲下tkinter库中的其他的一些模块,如simpleDialog,scrollerText等. 1: simpleDialog simpledial ...

  8. cmake的安装方法

    最近参与一个新项目,这个项目使用cmake作为构建系统.作为Java程序员,平常都使用ant或者maven来构建,难得有机会接触cmake之类的工具,所以参与这个项目是个学习cmake的好机会. 但干 ...

  9. 【李南江】从零玩转TypeScript

    前言 老套路肯定是 需要知道TS是干啥用的啦. 1.什么是TypeScript(TS)? TypeScript简称TS TS和JS之间的关系其实就是Less/Sass和CSS之间的关系 就像Less/ ...

  10. Jenkins简介及安装配置详解:开启持续集成之旅

    Jenkins简介及安装配置详解:开启持续集成之旅 一.Jenkins介绍 Jenkins是一个开源的.用Java编写的持续集成和持续交付(CI/CD)工具.它提供了一种简单易用的方式来自动化构建.测 ...