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 ...
随机推荐
- 基础练习:FJ的字符串
问题描述 FJ在沙盘上写了这样一些字符串: A1 = "A" A2 = "ABA" A3 = "ABACABA" A4 = "AB ...
- iOS信号量造成线程优先级反转
在并发队列使用信号量会可能会造成线程优先级反转 一.在iOS16 & XCode14上遇到 - 使用信号量造成线程优先级反转问题 提醒 经过查询资料,发现是在XCode14上增加了工具,比如 ...
- offline RL | BCQ:学习 offline dataset 的 π(a|s),直接使用 (s, π(s)) 作为 Q learning 训练数据
题目: Off-Policy Deep Reinforcement Learning without Exploration,ICLR 2019 pdf 版本:https://arxiv.org/pd ...
- 手撕Vue-Router-实现router-link
前言 在上一篇 [手撕Vue-Router-添加全局$router属性] 中,实现了将每一个 Vue 实例上挂载一个 $router 属性,这个属性就是我们在上一篇文章中创建的 VueRouter 实 ...
- 【封装】Splay
注意确保操作合法性,否则可能陷入死循环 以点权作为排序依据 struct Splay{ #define ls p[u].son[0] #define rs p[u].son[1] #define ma ...
- .NET周刊【11月第4期 2023-11-26】
国内文章 万字长文:从 C# 入门学会 RabbitMQ 消息队列编程 https://www.cnblogs.com/whuanle/p/17837034.html 如题,详细的介绍RabbitMQ ...
- Nim 枚举类型 对性能的影响
Nim 枚举类型 对性能的影响 继上一篇文章<Nim 概念 Concept 对性能的影响>后,我在想,既然 method 虚方法造成性能的影响很大,那么有没有更快的方法实现,当然是有的,那 ...
- [ABC261A] Intersection
Problem Statement We have a number line. Takahashi painted some parts of this line, as follows: Firs ...
- 高斯朴素贝叶斯(Gaussian Naive Bayes)原理与实现——垃圾邮件识别实战
朴素贝叶斯(Naive Bayes): 根据贝叶斯定理和朴素假设提出的朴素贝叶斯模型. 贝叶斯定理: 朴素假设(特征条件独立性假设): 代入可知朴素贝叶斯模型计算公式: 因为朴素贝叶斯是用来分类任务, ...
- 反转数组、打印数组元素、加强(增强)for循环
package com.guoba.array; public class Demo04 { public static void main(String[] args) { int[] arr = ...