簡體   English   中英

在PowerShell中將字符串轉換為24小時時間格式

[英]Convert String to 24 Hour time format in powershell

我將一些字符串短時間值轉換為24小時時間格式時遇到問題。

在腳本中,我有以下foreach循環來解析來自csv每一行數據:

Foreach ($Line in $Data) {
    $command.CommandText=$SQLCommandPre+ `
        "'"+$line."Reference" `
        +"','"+$line."Date" `
        +"','"$line."Business Hour".SubString(0,8) `
        +"','"+"{0:f2}" -f ($line."Total"/2) `
    +"','"+"{0:f0}" -f ($line."Number"/2) `
    +"')"
    [void] $command.ExecuteNonQuery()
}

例如,我的源數據是:

0101,8/19/2012,12:00 AM - 12:59 AM,241.83,21

目前在腳本中它只是抓住12點,但我需要轉換為00:00。 我嘗試使用以下內容,但它對查詢powershell創建沒有任何影響:

"{0:HH:mm}" -f ($line."Business Hour".SubString(0,8))

我一直無法找到另一種方法來達到我的目標。

在嘗試格式化之前,請確保將檢索到的字符串轉換為[DateTime]對象,例如:

C:\PS> "{0:HH:mm}" -f [datetime]'12:00 AM'
00:00

有多種方法可以實現這一目標。 我可能會這樣做:

$test = '0101,8/19/2012,12:00 AM - 12:59 AM,241.83,21'
([dateTime]$test.Split(',')[2].Split('-')[0]).ToString('HH:mm')

你可以根據需要調整如何獲得子串。 在這種情況下,我更喜歡拆分.SubString(),因為它更能容忍字符串長度的變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM