首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何获得时间戳之间的差异(字符串或time.time)

如何获得时间戳之间的差异(字符串或time.time)
EN

Stack Overflow用户
提问于 2019-05-21 06:49:41
回答 1查看 672关注 0票数 1

我有一个问题:我需要知道戈朗两个时间戳之间的区别/持续时间。因此,我使用时间库(https://golang.org/pkg/time/)。

如果我有两个"time.time“类型的时间戳,那么使用"time.Sub()”很容易得到区别。我的问题是,我的时间戳之一来自另一个函数,它只能以字符串的形式传输:

t1 := "2009-11-10 23:00:00 +0000 UTC m=+0.000000001“//type: string t2 := time.Now() //type: time.time

现在我要讲的是基本的可能性:

( A)将t2转换为字符串,并试图找出两个字符串(丑陋)之间的区别。

B)将t1从"string“类型转换为"time.time”类型,然后应用"time.Sub()“

我想走B路)。因此,我发现

Time.Parse(格式,时间字符串)

应该能够做到这一点。因此,我尝试使用

t1_time,err := time.Parse(time.RFC3339,t1)

但结果并不像预期的那样!相反,我得到了这个

0001-01-01 :00:00 +0000协调世界时

“错误解析时间"2009-11-10 23:00:02 +0000 UTC m=+2.000000001”2006-01-02T15:04:05Z07:00":不能将“23:00:02 +0000 UTC m=+2.000000001”解析为"T“。

如果我使用与t1相同的自己的时间格式

时间格式:= "2009-11-10 23:00:00 +0000 UTC m=+0.000000001“ t1_time,err := time.Parse(时间格式,t1)

结果仍然是错误的,我得到的错误是“错误解析时间"2009-11-10 23:00:02 +0000 UTC m=+2.000000001”2009-11-10 23:00 +0000 UTC m=+0.000000001":无法将"9-11-10 23:00:02 +0000 UTC m=+2.000000001“解析为"009-”。

我还试图浏览unix time,但是时间库不允许我将字符串转换为UNIX。

我做错什么了?!为什么解析不起作用?谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-21 07:24:20

基本上你想:

代码语言:javascript
运行
AI代码解释
复制
    t1_raw := "2009-11-10 23:00:00 +0000 UTC m=+0.000000001"
    format := "2006-01-02 15:04:05 -0700 MST"

    // for simplicity t1_raw[:29] discards time's monotonic delta
    // i.e. the " m=+0.000000001" suffix

    t1, err := time.Parse(format, t1_raw[:29])
    if err != nil {
            log.Fatal(err)
    }

    log.Println("Duration ->", t2.Sub(t1))

如果您确实希望包含单调增量,则必须手动解析该数字,并将增量应用于t1

操场版本

注意:游乐场版本将显示持续时间为零--当操场的时钟从Nov 11 2009开始时-- go的开创性生日。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56240944

复制
相关文章
python——时间与时间戳之间的转换
对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种:
felixzhao
2019/02/13
2.8K0
python——时间与时间戳之间的转换
对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换为时间戳 重新格式化时间 时间戳转换为时间 获取当前时间及将其转换成时间戳 1、将时间转换成时间戳 将如上的时间2016-05-05 20:28:54转换成时间戳,具体的操作过程为: 利用strptime()函数将时间转换成时间数组 利用mktime()函数将时间数组转换成时间戳 #coding:UTF-8 i
felixzhao
2018/03/16
1.7K0
Python时间,日期,时间戳之间转换
1.将字符串的时间转换为时间戳    方法:        a = "2013-10-10 23:40:00"        将其转换为时间数组        import time        timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")    转换为时间戳:    timeStamp = int(time.mktime(timeArray))    timeStamp == 1381419600 2.字符串格式更改    如a = "2013-10-10 23:40:00",想改为 a = "2013/10/10 23:40:00"    方法:先转换为时间数组,然后转换为其他格式    timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")    otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray) 3.时间戳转换为指定格式日期:    方法一:        利用localtime()转换为时间数组,然后格式化为需要的格式,如        timeStamp = 1381419600        timeArray = time.localtime(timeStamp)        otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)        otherStyletime == "2013-10-10 23:40:00"    方法二:        import datetime        timeStamp = 1381419600        dateArray = datetime.datetime.utcfromtimestamp(timeStamp)        otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")        otherStyletime == "2013-10-10 23:40:00" 4.获取当前时间并转换为指定日期格式    方法一:        import time        获得当前时间时间戳        now = int(time.time())  ->这是时间戳        转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"        timeArray = time.localtime(timeStamp)        otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)    方法二:        import datetime        获得当前时间        now = datetime.datetime.now()  ->这是时间数组格式        转换为指定的格式:        otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S") 5.获得三天前的时间    方法:        import time        import datetime        先获得时间数组格式的日期        threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3))        转换为时间戳:            timeStamp = int(time.mktime(threeDayAgo.timetuple()))        转换为其他字符串格式:            otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S")    注:timedelta()的参数有:days,hours,seconds,microseconds 6.给定时间戳,计算该时间的几天前时间:    timeStamp = 1381419600    先转换为datetime    import datetime    import time    dateArray = datetime.datetime.utcfromtimestamp(timeStamp)    threeDayAgo = dateArray - datetime.timedelta(days = 3)    参考5,可以转换为其他的任意格式了
py3study
2020/01/08
2.5K0
iOS 时间和时间戳之间转化
以毫秒为整数值的时间戳转换 时间戳转化为时间NSDate - (NSString *)timeWithTimeIntervalString:(NSString *)timeString { // 格式化时间 NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; formatter.timeZone = [NSTimeZone timeZoneWithName:@"shanghai"]; [formatter
用户1941540
2018/05/11
1.3K0
java 时间戳字符串_Java获取当前时间戳/时间戳转换
public classApp {public static voidmain(String[] args) {//精确到毫秒//获取当前时间戳
全栈程序员站长
2022/08/11
8.5K0
Python获得13位unix时间戳
Python中的time模块把datetime时间转换为10位的时间戳,之前有记录过转换的方法。而今天调用的API中需要的是13位(一般Java里默认是13位(milliseconds,毫秒级的)。下面是我今天找到的方法,记录一下。 获取10位UNIX时间戳 #导入time模块 In [1]: import time   # 获取unix时间戳,并赋值给unix_Timestamp In [2]: unix_Timestamp = time.time()   #打印结果 In [3]: print unix
行 者
2018/03/26
2.8K0
golang获取当前时间、时间戳和时间字符串及它们之间的相互转换
说明:从打印结果可以看出,time.Now()和Date()方法都可以获取当前时间,time.Now()用起来比较简单,但是Date()可以获取不同的精确值,如time.Date(t1,t2,t3,t4,t5,t6,0,time.Local)将毫秒省略,精确到秒,结果为:2017-04-11 12:52:52 +0800 CST
IT工作者
2021/12/23
7.3K0
Linux时间戳转换_如何获取时间戳
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
13.3K0
Java DateTime 获得当前 Unix 的时间戳
获得当前日期时间的毫秒数,这个毫秒数是从 1970-01-01T00:00:00Z 开始计算的。
HoneyMoose
2020/10/30
2.1K0
Java DateTime 获得当前 Unix 的时间戳
java获取时间戳单位秒,如何测试给定的时间戳是以秒或毫秒为单位?「建议收藏」
Assume a given variable, it is containing a UNIX time-stamp, but whether it is in seconds or milliseconds format is unknown, I want to assign to a variable which is in seconds format
全栈程序员站长
2022/10/03
2.6K0
python datetime 字符串 时间戳
#把datetime转成字符串 def datetime_toString(dt): return dt.strftime("%Y-%m-%d-%H") #把字符串转成datetime def string_toDatetime(string): return datetime.strptime(string, "%Y-%m-%d-%H") #把字符串转成时间戳形式 def string_toTimestamp(strTime): return time.mktime(strin
玩蛇的胖纸
2018/07/05
7630
javascript中日期格式与时间戳之间的转化
日期格式与时间戳之间的转化 一:日期格式转化为时间戳 function timeTodate(date) { var new_str = date.replace(/:/g,'-'); new_str = new_str.replace(/ /g,'-'); var arr = new_str.split("-"); var datum = new Date(Date.UTC(arr[0],arr[1]-1,arr[2],arr[3]-8,arr[4],arr[5]));
猿人谷
2018/01/17
1.9K0
Golang获取过去或将来某周某月的开始时间戳和结束时间戳
Golang获取过去或将来某周某月的开始时间戳和结束时间戳 开发过程中我们经常需要拿到相对于当前时间过去或将来的某周某月的开始和结束时间戳,下面为大家准备了对应的方法。 1.获取某周的开始和结束时间戳 // 获取某周的开始和结束时间,week为0本周,-1上周,1下周以此类推 func WeekIntervalTime(week int) (startTime, endTime string) { now := time.Now() offset := int(time.Monday - no
用户6786882
2021/11/19
3.3K0
字符串按排序和时间戳
我们如果直接进行的排序的话,得到的序列是字符顺序的,即 1,10,2,20,… ,但是我们希望得到的是 1,2,3,4,… 这种序列,有两种方法可以实现排序。
zucchiniy
2020/05/22
9780
Golang将时间戳转为字符串
在golang里面获取时间戳并不难。只要加载time包。然后time.Now().Unix(),就可以了,但接下来转成string就麻烦了 本来,加载strconv的话,用strconv.Itoa也可以解决,但unixtime的时间戳是int64, itoa只能转32位的。这时候就只有一个恶心的办法了。 fmt.Sprintf("%d",int64),这个是肯定可以转,。。。。我现在就是用这种办法的 做个笔记 --EOF-- 后记,在群里问了一下,结果asta谢就说了。明明有strconv.FormatIn
李海彬
2018/03/20
3.1K0
Golang将时间戳转为字符串
在golang里面获取时间戳并不难。只要加载time包。然后time.Now().Unix(),就可以了,但接下来转成string就麻烦了 本来,加载strconv的话,用strconv.Itoa也可以解决,但unixtime的时间戳是int64, itoa只能转32位的。这时候就只有一个恶心的办法了。 fmt.Sprintf("%d",int64),这个是肯定可以转,。。。。我现在就是用这种办法的 做个笔记 --EOF-- 后记,在群里问了一下,结果asta谢就说了。明明有strconv.FormatIn
李海彬
2018/03/26
2.1K0
JQuery时间戳与时间字符串的转换「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142703.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.7K0
点击加载更多

相似问题

计算时间戳之间的差异

10

当前时间戳与以前时间戳之间的差异

23

时间戳(0)和时间戳(6)之间的差异

20

Postgresql中行之间的时间戳差异

12

excel中时间戳之间的差异

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文