Bash:以人类可读格式将 unix 时间四舍五入到最接近的分钟

     2023-03-24     261

关键词:

【中文标题】Bash:以人类可读格式将 unix 时间四舍五入到最接近的分钟【英文标题】:Bash: Rounding up unix time to the nearest minute in human readable format 【发布时间】:2017-05-06 17:40:33 【问题描述】:

我有一个纪元时间戳列表,如下所示:

1481842799,1481842859,.....

到目前为止,我设法使用 date 命令将这个时间转换为人类可读的格式,如下所示:

date '+%Y%m%d%H%M%S' -d @1481842799
20161215235959

date '+%Y%m%d%H%M%S' -d @1481842859
20161216000059

date '+%Y%m%d%H%M%S' --date='@1481842799'
20161215235959

如何使用 date 命令将时间四舍五入到最接近的分钟,如下所示?:

20161215235959 到 20161216000000,20161216000059 到 20161216000100

尝试了以下方法但不起作用:

date '+%Y%m%d%H%M%S' --date='@1481842799 + 1 seconds'
date: invalid date `@1481842799 + 1 seconds'

【问题讨论】:

你知道所有的时间戳都对应59秒的时间,所以四舍五入就像加一秒一样简单吗? (例外:您需要考虑闰秒吗?)或者第二个字段可以具有任意值并且您实际上需要四舍五入到下一分钟? 我尝试增加 1 秒,但如您所见,我无法使用 date 命令完成。 如果我有任意一秒的时间,也知道如何四舍五入会很好。不确定 date 命令是否支持此类功能。 @Inian,是的! 【参考方案1】:

您正在使用GNU date,这从-d 标志非常明显。如果您的意图是将 EPOCH 时间增加一秒,请使用 bash 算术运算符 $(()) 进行如下操作

date '+%Y%m%d%H%M%S' -d "@$((1481842799 + 1))"
20161216043000

即使不递增,也可以使用双引号

date '+%Y%m%d%H%M%S' -d "@$((1481842799))"
20161216042959

差不多
date '+%Y%m%d%H%M%S' -d @1481842799
20161216042959

作为替代建议,要向上舍入到最接近的分钟,最好添加 59,然后除以并乘以 60 以将 向下 截断到最接近的分钟,有点像 chepner在 cmets 中的建议。

date '+%Y%m%d%H%M%S' -d "@$(( ((1481842799 + 59) / 60) * 60))"
20161216043000

加上59而不是60,表示当原值已经是60的倍数时,不再四舍五入。

【讨论】:

使用 Moment.js 将人类可读时间转换为 Unix 纪元时间

】使用Moment.js将人类可读时间转换为Unix纪元时间【英文标题】:UseMoment.jstoconverthumanreadabletimetoUnixepochtime【发布时间】:2020-09-2919:43:01【问题描述】:我正在尝试使用Moment.js将人类可读的时间转换为Unix纪元时间。我也想知道。35... 查看详情

将 Epoch 时间戳转换为 sql server(人类可读格式)

】将Epoch时间戳转换为sqlserver(人类可读格式)【英文标题】:convertingEpochtimestamptosqlserver(humanreadableformat)【发布时间】:2011-01-2422:14:31【问题描述】:我在将Unix时间戳转换为sqlserver时间戳时遇到问题。我在Excel表中有一个数据... 查看详情

如何以毫秒为单位获取带有 unix 时间戳的人类可读日期? [复制]

】如何以毫秒为单位获取带有unix时间戳的人类可读日期?[复制]【英文标题】:Howtogethumanreadabledatewithunixtimestampinmilliseconds?[duplicate]【发布时间】:2014-10-1115:25:06【问题描述】:是否有不使用已弃用的Date类的解决方案,并且不必... 查看详情

如何以人类可读的格式输出(到日志)多级数组?

】如何以人类可读的格式输出(到日志)多级数组?【英文标题】:Howtooutput(toalog)amulti-levelarrayinaformatthatishuman-readable?【发布时间】:2012-08-0618:22:32【问题描述】:我正在开发一个drupal站点,在调试时,我总是需要通读长的嵌套... 查看详情

人类可读格式的时间戳

】人类可读格式的时间戳【英文标题】:Timestamptohumanreadableformat【发布时间】:2011-07-2123:25:00【问题描述】:我在使用javascript从unix时间戳转换为人类表示时遇到了一个奇怪的问题这是时间戳1301090400这是我的javascriptvardate=newDate(t... 查看详情

如何以人类可读的格式显示 BigDecimal 值?

】如何以人类可读的格式显示BigDecimal值?【英文标题】:HowtodisplayBigDecimalvalueinahumanreadableformat?【发布时间】:2014-02-2404:59:17【问题描述】:假设我们有一个像这样设置的BigDecimal变量,我们不能改变它的创建方式:BigDecimalnum=new... 查看详情

MySql 时间戳舍入然后以人类可读格式重新格式化

】MySql时间戳舍入然后以人类可读格式重新格式化【英文标题】:MySqltimestamproundingthenreformattinginhumanreadableformat【发布时间】:2015-12-2812:51:30【问题描述】:我有来自GroupOHLC-StockmarketDataintomultipletimeframes-Mysql的以下查询。SELECTFLOOR(... 查看详情

将 unix 时间转换为 pandas 数据框中的可读日期

...含unix时间和价格的数据框。我想转换索引列,以便它以人类可读的日期显示。例如,我在索引列中有date作为1349633705,但我希望它显示为10/07/2012(或至少10/07/201218:15)。在 查看详情

将带有单位的数字转换为非人类可读格式

】将带有单位的数字转换为非人类可读格式【英文标题】:ConvertnumberwithunitsinpythontoNONhumanreadableformat【发布时间】:2016-01-2615:44:42【问题描述】:转换包含浮点数和单位的数字列的最佳方法是:df=pd.DataFrame(["211.301MB","435.5GB","345.2... 查看详情

将日期从人类可读格式转换为纪元失败

】将日期从人类可读格式转换为纪元失败【英文标题】:Conversionofdatefromhuman-readableformattoepochfails【发布时间】:2021-11-1104:36:55【问题描述】:我想创建一个程序,将特定人类可读格式的日期转换为纪元。到目前为止,我有以下... 查看详情

格式化日期对象以显示人类可读的日期

】格式化日期对象以显示人类可读的日期【英文标题】:Formattingadateobjecttodisplayahumanreadabledate【发布时间】:2012-08-0322:46:20【问题描述】:这是我想要展示的内容:May13,2012下面是显示的内容:2012-05-13我搜索了一些答案,然后找... 查看详情

如何以人类可读的方式格式化 CouchDB 设计文档?

】如何以人类可读的方式格式化CouchDB设计文档?【英文标题】:HowdoIformatCouchDBdesigndocumentsinahumanreadableway?【发布时间】:2013-09-0216:57:20【问题描述】:由于views是用JSON在CouchDB中定义的,我很难以人类可读的方式定义它们。收下... 查看详情

以人类可读的格式显示容器弃用日志?

】以人类可读的格式显示容器弃用日志?【英文标题】:Showcontainerdeprecationloginhuman-readableformat?【发布时间】:2022-01-1217:15:27【问题描述】:我有一个Symfony5.3应用程序。容器编译完成后,出现如下文件:var/cache/dev/App_KernelDevDebugC... 查看详情

如何将字符串时间戳更改为人类可读的日期格式? [复制]

】如何将字符串时间戳更改为人类可读的日期格式?[复制]【英文标题】:HowtochangestringtimestampintoHumanreadabledateformat?[duplicate]【发布时间】:2017-07-1910:09:21【问题描述】:我正在尝试将字符串时间戳转换为以下内容:2分钟前。1小... 查看详情

如何以 json 格式(双引号)漂亮地打印(人类可读的打印)Python dict? [复制]

】如何以json格式(双引号)漂亮地打印(人类可读的打印)Pythondict?[复制]【英文标题】:Howtoprettyprint(humanreadablyprint)aPythondictinjsonformat(doublequotes)?[duplicate]【发布时间】:2016-07-0111:40:01【问题描述】:这是thisone的后续问题。我... 查看详情

iconv 将 Mainframe EBCDIC 文件转换为 Unix 可读格式将数据写入一行

】iconv将MainframeEBCDIC文件转换为Unix可读格式将数据写入一行【英文标题】:iconvtoconvertMainframeEBCDICfiletoUnixreadableformatwritesdatainonesinglerow【发布时间】:2021-01-2300:13:53【问题描述】:我正在尝试使用以下iconv命令将大型机文件转换... 查看详情

将人类可读的日期转换为纪元时间戳

】将人类可读的日期转换为纪元时间戳【英文标题】:ConvertHumanreadabledateintoanepochtimestamp【发布时间】:2012-11-1221:35:17【问题描述】:我正在处理一个C#项目,其中我有一个2012-11-2415:35:18格式的日期/时间,我需要将其转换为一个... 查看详情

在 Mac OSX 上将 unix 纪元时间转换为人类可读的日期 - BSD

】在MacOSX上将unix纪元时间转换为人类可读的日期-BSD【英文标题】:ConvertunixepochtimetohumanreadabledateonMacOSX-BSD【发布时间】:2014-03-2409:49:08【问题描述】:在我的MacOSX上,我的bash脚本有一个纪元时间123439819723。我可以通过date-r123439... 查看详情