2021年5月12日 星期三

PowerShell 字串String 與 日期Datetime 格式轉換

PowerShell 字串String 與 日期Datetime 格式轉換

tags: 部落格文章

字串轉時間

建構子

直接用建構子是最簡單的

New-Object DateTime(2021, 5, 12, 22, 29, 30)


進階自訂格式

核心的程式長這樣

[DateTime]::ParseExact("13.May.2017", "dd.MMM.yyyy",[CultureInfo]::InvariantCulture)

這樣簡單一行就能夠格式化字串到日期了

強化一下寫好的副程式是這樣的

function newDatetime {
    param (
        [string]$date = "",
        [string]$formatType = "yyyy-MM-dd HH:mm:ss"
    )
    # 未輸入日期則返回當前時間
    if ([string]::IsNullOrEmpty($date)) {
        $newDate = (Get-Date)
    }
    # 格式化日期
    else {
        $newDate = [DateTime]::ParseExact(
            $date.Trim(), $formatType,
            [CultureInfo]::InvariantCulture
        )
    }
    return $newDate
}

使用的話直接這就可以用了

newDatetime "2000-01-01 12:00:00"

要自訂格式的話,後面空格多補一個參數

newDatetime "13.May.2017" "dd.MMM.yyyy"



日期轉字串

再來是把日期轉出來到字串,這個就比較容易

方式1

直接轉成字串即可

(Get-Date).ToString("yyyy-MM-dd HH:mm:ss")

方式2

陣列轉換

'{0:yyyy-MM-dd HH:mm:ss}' -f (Get-Date)

沒有留言:

張貼留言