繁体   English   中英

在写入 CSV - powershell 之前将日期正确转换为英国时间格式

[英]Getting Date into UK time format correctly before writing to CSV - powershell

我有一小段代码可以计算计算机登录所经过的天数。 它工作正常,并为我提供了正确的信息。 但是,当将字符串放入 CSV 文件时,它会以美国时间格式显示日期:MM/dd/yyyy HH:mm:ss 但我想要英国:dd/MM/yyyy HH:mm:ss 返回到 CSV。

这是为我提供所需信息的代码:
注意:ps中的日期格式显示如下:04 August 2022 11:21:40

##get date into variable
$Date = Get-Date
#Get pc login timestamp into variable
$lastlogon = $Computer.lastlogonTimestamp
##Calculate the days elapsed but this part is really irrelevant for the question.  
$dayslogonelapsed = $Date - $lastlogon

一旦我准备好将数据写入 csv 文件,代码如下:

$csvdescriptoutput = 'C:\temp\csvtest.csv'
###Log data to a single variable for CSV. 
$logline = ("$lastlogon;" + "$($dayslogonelapsed.Days)")
###write to CSV
Add-Content -Path $csvdescriptoutput -Value $LogLine   

当数据在日志文件中时,它显示如下:07/24/2022 14:07:28 - 美国格式。 当我需要这个时:24/07/2022 14:07:28 - 英国格式。 我的电脑设置为英国时间本地人,我的 Excel 也是如此。

也不能在工作表中更改 excel 一次,因为 CSV 只查看字符串。

自定义格式字符串传递给Get-Date ,如下所示:

$Date = Get-Date -Format 'dd\/MM\/yyyy HH\:mm\:ss'

这会将日期转换为字符串。 要将$Date保留为[DateTime] ,您还可以使用其ToString()方法按需对其进行格式化:

$Date = Get-Date 
$Date.ToString('dd\/MM\/yyyy HH\:mm\:ss')

笔记:

为了确保保留字符/:被逐字解释,独立于语言环境,请通过在它们前面放置反斜杠来转义它们。

有关保留字符和 escaping 的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM