簡體   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