[玩转系统] PowerShell 将纪元时间转换为日期时间 [3 种方法]
作者:精品下载站 日期:2024-12-14 05:28:47 浏览:13 分类:玩电脑
PowerShell 将纪元时间转换为日期时间 [3 种方法]
在采用各种解决方案将纪元时间转换为日期时间之前,了解纪元时间至关重要。 Epoch 时间、POSIX 时间或 Unix 时间是用单个数字表示时间点的系统。这个数字是自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来经过的秒数(不包括闰秒)。
为什么需要 Unix 纪元时间?它通常用于编程语言和计算机系统中来表示和操作时间和日期。它通过表示指示时间点的单个数字来简化时间和日期的计算;它还允许我们将日期和时间与各种系统和时区进行比较。
您可能遇到的另一个问题是该数字是代表纪元时间的整数还是浮点数。可以是其中任何一个。 Epoch 时间可以是浮点数或整数,具体取决于系统和编程语言。让我们继续使用各种解决方案将纪元时间转换为 DateTime
。
使用 DateTime
类的 AddSeconds()
方法
使用 DateTime
类的 AddSeconds()
方法将纪元时间转换为 PowerShell 中的 DateTime
。
使用 DateTime 类的 AddSeconds() 方法:
$epochTime = 1615395869
$dateTimeObject = (New-Object DateTime 1970,1,1,0,0,0).AddSeconds($epochTime)
Write-Output $dateTimeObject
输出 :
Wednesday, March 10, 2021 5:04:29 PM
首先,我们定义了 $epochTime
变量,并使用 1615395869
值(纪元时间值)对其进行初始化。接下来,我们使用 New-Object
cmdlet 创建一个带有 1970,1,1,0,0,0
参数的 DateTime
对象,该对象表示 Epoch 时间(也称为 Unix Epoch)的起点。最后,通过 DateTime
对象,我们链接了 AddSeconds()
方法,该方法将 $epochTime
作为参数。
此方法用于将 $epochTime
的值添加到 DateTime
对象,以获取新的 DateTime
对象,显示对应的人类可读日期和时间到指定的 Epoch 时间值。最后,我们使用 Write-Output
cmdlet 在 PowerShell 控制台上打印 $dateTimeObject
变量的值。
如果您得到不同的输出,请不要惊慌,因为上述代码的输出取决于您系统的时区设置。
下面给出了上述脚本的替代脚本。
使用 DateTime 类的 AddSeconds() 方法:
$epochTime = 1615395869
$originOfEpochTime = New-Object -Type DateTime -ArgumentList 1970, 1, 1, 0, 0, 0, 0
$dateTimeObject = $originOfEpochTime.AddSeconds($epochTime)
Write-Output $dateTimeObject
输出 :
Wednesday, March 10, 2021 5:04:29 PM
在这里,我们使用 -Type
参数来提及我们想要创建的对象的类型,并使用 -ArgumentList
参数指定参数列表。
将 Get-Date
Cmdlet 与 AddSeconds()
方法结合使用
在 PowerShell 中使用 Get-Date
cmdlet 和 AddSeconds()
方法将纪元时间转换为 DateTime
。
将 Get-Date Cmdlet 与 AddSeconds() 方法结合使用:
$epochTime = 1615395869
$dateTimeObject = (Get-Date).AddSeconds($epochTime)
Write-Output $dateTimeObject
输出 :
Sunday, May 20, 2074 3:10:20 AM
此示例与上一节中提供的示例类似。在这里,我们使用 Get-Date
cmdlet 获取当前日期和时间,并使用 AddSeconds()
方法将 $epochTime
添加到其中获取一个 DateTime
对象,我们将其存储在 $dateTimeObject
变量中。此外,我们使用 Write-Output
cmdlet 在 PowerShell 控制台上显示其值。
在上面的示例中,大纪元时间的起点是基于您的系统和时区的当前日期。
将 Get-Date
Cmdlet 与 System.TimeSpan
库结合使用
我们还可以将 Get-Date
cmdlet 与 Microsoft .NET 类库 System.TimeSpan
结合使用,将指定的 Epoch 时间转换为人类可读的日期和时间。请参阅以下示例。
将 Get-Date Cmdlet 与 System.TimeSpan 结合使用:
$epochTime = 1615395869
$dateTimeObject = (Get-Date -Date "01-01-1970") +
([System.TimeSpan]::FromSeconds(($epochTime)))
Write-Output $dateTimeObject
输出 :
Wednesday, March 10, 2021 5:04:29 PM
在这里,我们使用 Get-Date
和 -Date
参数(设置为 01-01-1970
)来创建 DateTime对象。此外,我们使用
TimeSpan.FromSeconds()
方法将 $epochTime
表示的秒数添加到其中。那么,这里的大纪元时间的起点是什么呢?是的,你没看错!大纪元时间的起始点是01-01-1970
。
到目前为止,Epoch 时间戳是从过去获取的;如果我们想使用当前的纪元时间戳怎么办?在这种情况下,我们可以使用下面的解决方案。
将当前纪元时间转换为 DateTime
要将实际(当前)纪元时间转换为人类可读的 DateTime
:
- 使用带有
-UFormat
参数的Get-Date
cmdlet 来获取当前纪元时间。 - 使用
System.DateTimeOffset
类将上述Epoch时间转换为常规DateTime
。
将当前纪元时间戳转换为人类可读的日期时间:
$epochTime = Get-Date -UFormat %s
$dateTimeObject = (([System.DateTimeOffset]::FromUnixTimeSeconds($epochTime)).DateTime)
Write-Output $dateTimeObject
输出 :
Sunday, March 12, 2023 10:40:18 AM
在上述代码的第一行中,我们使用了 Get-Date
以及 -UFormat
参数,该参数的值设置为 %s
;该命令返回当前时间,作为自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数,这是一个 Unix 纪元时间。接下来,我们将此 Epoch 时间分配给 $epochTime
变量。
接下来,我们使用 System.DateTimeOffset
类的 FromUnixTimeSeconds()
方法将检索到的 Epoch 时间转换为 DateTimeOffset
对象,表示起始时间与 UTC
存在偏移的时间点。
之后,我们访问 DateTimeOffset
对象的 DateTime
属性来获取对应的 DateTime
对象,表示相同的时间起点,但没有抵消。最后,这个起始时间点存储在 $dateTimeObject
变量中,我们将其与 Write-Output
cmdlet 一起使用以在 PowerShell 控制台上打印其值。
我们可以通过将 ToString()
方法与 $dateTimeObject
链接起来,使上述输出更具可读性;请参见以下示例。 ToString()
方法什么也不做,只是转换为 String
类型。
将当前纪元时间戳转换为人类可读的日期时间:
$epochTime = Get-Date -UFormat %s
$dateTimeObject = (([System.DateTimeOffset]::FromUnixTimeSeconds($epochTime)).DateTime)
Write-Output $dateTimeObject.ToString()
输出 :
3/12/2023 10:43:21 AM
这就是 PowerShell 将 Epoch 时间转换为 DateTime 的全部内容。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag