将日期转换为unixt时间戳-powershell

将日期转换为unixt时间戳-powershell,powershell,Powershell,我需要你的帮助 我有csv文件的输出,如下所示,我需要将日期转换为Unix时间戳。为了只保留日期,可以通过简单的replace命令删除标题“scheduledstart Date Time”,但是每一行都需要更改为UNIX时间戳 Scheduled Start Date Time 2020-04-14 19:00 2020-04-15 06:00 2020-04-15 06:00 2020-04-15 14:00 2020-04-15 14:00 2020-04-15 09:00 2020-04

我需要你的帮助

我有csv文件的输出,如下所示,我需要将日期转换为Unix时间戳。为了只保留日期,可以通过简单的replace命令删除标题“scheduledstart Date Time”,但是每一行都需要更改为UNIX时间戳

Scheduled Start Date Time
2020-04-14 19:00
2020-04-15 06:00
2020-04-15 06:00
2020-04-15 14:00
2020-04-15 14:00
2020-04-15 09:00
2020-04-15 14:00
2020-04-15 09:00
我试过类似的方法,但不起作用:

$trimfile = Get-Content -Path "C:\Users\timestamp.txt"
Get-Date -Date $trimfile -UFormat %s | Out-File "C:\Users\timestamp1.txt"

Unix纪元从1970年1月1日开始,因此只需从当前日期中减去该日期,然后计算两者之间的秒数:

# Read all timestamps into variable
$timestamps = Get-Content C:\Users\timestamp.txt |Select -Skip 1

# Define unix epoch
$unixEpoch  = Get-Date '1970-01-01'

# Loop over all timestamps
for($i = 1; $i -le $timestamps.Count; $i++){
  # Calculate UTC corresponding to the timestamp
  $currentUtc = (Get-Date $timestamps[$i-1]).ToUniversalTime()

  # Calculate + round total number of seconds since epoch
  $totalSeconds = ($currentUtc - $unixEpoch).TotalSeconds
  [Math]::Round($totalSeconds) |Out-File "C:\Users\timestamp${i}.txt"
}


如果机器上的区域不识别时间戳格式,请使用<代码> [DATETIME]::PARSE($TimePays[$I-1),[CultualFiels]::不变的文化)< /C> >而不是<代码>获取日期$TimeSt[$1-1 ] /代码> /p>您认为“UNIX时间戳”是什么?你想要的实际格式是什么?看看这篇文章>>>c#-如何将日期时间转换为1970年以来的秒数堆栈溢出-Unix时间戳?unix时间戳是一种以运行总秒数跟踪时间的方法。此计数从1970年1月1日UTC的Unix纪元开始。因此,unix时间戳仅仅是特定日期和unix纪元之间的秒数。还应该指出(感谢本网站访问者的评论),从技术上讲,无论您位于全球何处,这一时间点都不会改变。这对于在线和客户端的动态和分布式应用程序中跟踪和排序日期信息的计算机系统非常有用。1586890800相当于:04/14/2020@7:00pmHi,看起来是可行的,但是我得到了许多带有一个值的文件,我想将所有内容重定向到一个文件中。其他时间在Univesral时间,我需要在CEST时间(+2h)@majan中删除

${I}
文件名中的
${I}
。unix时间戳与时区无关,如果您在系统时区为+2的系统上运行此功能,则它可以工作如果我在输出文件中删除${I},那么在文件中,我从第一行只有一个条目。@majan add
-Append
输出文件