星期与获取日期

时间:2020-02-12 18:39:09

标签: powershell

我有以下powershell命令:

Get-Date -UFormat %V

星期一显示糟糕的星期几,我不知道为什么。如何添加一个以获得正确的星期数?在一周的第一天是星期一,我到处都走了,但没有帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

尝试使用此方法获取一年中的第几周。 Found here

function Get-WeekNumber([datetime]$DateTime = (Get-Date)) {
    $cultureInfo = [System.Globalization.CultureInfo]::CurrentCulture
    $cultureInfo.Calendar.GetWeekOfYear($DateTime,$cultureInfo.DateTimeFormat.CalendarWeekRule,$cultureInfo.DateTimeFormat.FirstDayOfWeek)
}

Get-WeekNumber  # -> 7, for instance

答案 1 :(得分:1)

您需要的是ISO8601周号,其中

  • 一周从星期一开始
  • 第1周是包含星期四的第一周

要获取本周号,可以使用以下功能:

function Get-Iso8601WeekNumber([datetime]$DateTime = (Get-Date)) {
    # ISO8601: Week starts on Monday and Week 1 is the week that contains Thursday
    $calendar = [CultureInfo]::InvariantCulture.Calendar
    $dow      = $calendar.GetDayOfWeek($DateTime)
    if ($dow -ge [DayOfWeek]::Monday -and $dow -le [DayOfWeek]::Wednesday) {
        $DateTime = $DateTime.AddDays(3)
    }
    return $calendar.GetWeekOfYear($DateTime, [Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday)
}

使用您的示例

Get-Iso8601WeekNumber "2020-02-17"

返回8

请注意使用InvariantCulture而不是CurrentCulture