Team Ai
Datasetpublic

MegaBites-AI/Windows-powershell

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes372downloads
Get-Date.Tests.ps1444 linesDownload Raw Back to Microsoft.PowerShell.Utility
1# Copyright (c) Microsoft Corporation.2# Licensed under the MIT License.3 4Describe "Get-Date DRT Unit Tests" -Tags "CI" {5    It "Get-Date with all parameters returns proper results" {6        $date = [datetime]::Now + ([timespan]::new(0,0,30))7        $result = Get-Date -Date $date -Year 1973 -Month 2 -Day 22 -Hour 15 -Minute 40 -Second 10 -Millisecond 2008        $result | Should -BeOfType Datetime9        $result.Year | Should -Be 197310        $result.Month | Should -Be 211        $result.Day | Should -Be 2212        $result.Hour | Should -Be 1513        $result.Minute | Should -Be 4014        $result.Second | Should -Be 1015        $result.Millisecond | Should -Be 20016    }17 18    It "using -displayhint produces the correct output" {19        $d = Get-Date -Date:"Jan 1, 2020"  -DisplayHint Date | Out-String20        $d.Trim() | Should -Be "Wednesday, January 1, 2020"21    }22 23    It "using -format produces the correct output" {24        Get-Date -Date:"Jan 1, 2020"  -Format:"MMM-dd-yy" | Should -Be "Jan-01-20"25    }26 27    It "using -AsUTC produces the correct output" {28        (Get-Date -Date:"2020-01-01T00:00:00").Kind | Should -Be Unspecified29        (Get-Date -Date:"2020-01-01T00:00:00" -AsUTC).Kind | Should -Be Utc30    }31 32    It "using -uformat %s produces the correct output" {33        $seconds = Get-Date -Date:"Jan 1, 2020Z" -UFormat:"%s"34 35        $seconds | Should -Be "1577836800"36        if ($IsLinux) {37            $dateString = "01/01/2020 UTC"38            if ( (Get-PlatformInfo).Platform -eq "alpine" ) {39                $dateString = "2020-01-01"40            }41            $expected = date --date=${dateString} +%s42            $seconds | Should -Be $expected43        }44    }45 46    It "using -uformat 'ymdH' produces the correct output" {47        Get-Date -Date 0030-01-01T00:00:00 -UFormat %y/%m/%d-%H | Should -Be "30/01/01-00"48    }49 50    It "using -uformat 'aAbBcCdDehHIkljmMpr' produces the correct output" {51        Get-Date -Date 1/1/0030 -UFormat "%a%A%b%B%c%C%d%D%e%h%H%I%k%l%j%m%M%p%r" | Should -Be "TueTuesdayJanJanuaryTue 01 Jan 0030 00:00:0000101/01/30 1Jan0012 0120010100AM12:00:00 AM"52    }53 54    It "using -uformat 'sStTuUVwWxXyYZ' produces the correct output" {55        Get-Date -Date 1/1/0030 -UFormat %S%T%u%U%w%W%x%X%y%Y%% | Should -Be "0000:00:00202001/01/3000:00:00300030%"56    }57 58    # The 'week of year' test cases is from https://en.wikipedia.org/wiki/ISO_week_date59    It "using -uformat 'V' produces the correct output (<date>:<week>)" -TestCases @(60        @{date="1998-01-02"; week = "01"},61        @{date="1998-01-03"; week = "01"},62        @{date="2003-01-03"; week = "01"},63        @{date="2004-01-02"; week = "01"},64        @{date="2004-01-03"; week = "01"},65        @{date="2005-01-01"; week = "53"},66        @{date="2005-01-02"; week = "53"},67        @{date="2005-12-31"; week = "52"},68        @{date="2006-01-01"; week = "52"},69        @{date="2006-01-02"; week = "01"},70        @{date="2006-12-31"; week = "52"},71        @{date="2007-01-01"; week = "01"},72        @{date="2007-12-30"; week = "52"},73        @{date="2007-12-31"; week = "01"},74        @{date="2008-01-01"; week = "01"},75        @{date="2008-12-28"; week = "52"},76        @{date="2008-12-29"; week = "01"},77        @{date="2008-12-30"; week = "01"},78        @{date="2008-12-31"; week = "01"},79        @{date="2009-01-01"; week = "01"},80        @{date="2009-01-02"; week = "01"},81        @{date="2009-01-03"; week = "01"},82        @{date="2009-12-31"; week = "53"},83        @{date="2010-01-01"; week = "53"},84        @{date="2010-01-02"; week = "53"},85        @{date="2010-01-03"; week = "53"},86        @{date="2010-01-04"; week = "01"},87        @{date="2014-01-03"; week = "01"},88        @{date="2015-01-02"; week = "01"},89        @{date="2015-01-03"; week = "01"},90        @{date="2020-01-03"; week = "01"},91        @{date="2025-01-03"; week = "01"},92        @{date="2026-01-02"; week = "01"},93        @{date="2026-01-03"; week = "01"},94        @{date="2031-01-03"; week = "01"}95    ) {96        param($date, $week)97        Get-Date -Date $date -UFormat %V | Should -BeExactly $week98    }99 100    # Using the same test cases as V for ISO week date component parity, plus some more esoteric ones101    It "using -uformat 'G' produces the correct output (<date>:<year>)" -TestCases @(102        @{date="0055-12-31"; year = "0055"},103        @{date="0325-01-01"; year = "0325"},104        @{date="0777-01-01"; year = "0776"},105        @{date="1998-01-02"; year = "1998"},106        @{date="1998-01-03"; year = "1998"},107        @{date="2003-01-03"; year = "2003"},108        @{date="2004-01-02"; year = "2004"},109        @{date="2004-01-03"; year = "2004"},110        @{date="2005-01-01"; year = "2004"},111        @{date="2005-01-02"; year = "2004"},112        @{date="2005-12-31"; year = "2005"},113        @{date="2006-01-01"; year = "2005"},114        @{date="2006-01-02"; year = "2006"},115        @{date="2006-12-31"; year = "2006"},116        @{date="2007-01-01"; year = "2007"},117        @{date="2007-12-30"; year = "2007"},118        @{date="2007-12-31"; year = "2008"},119        @{date="2008-01-01"; year = "2008"},120        @{date="2008-12-28"; year = "2008"},121        @{date="2008-12-29"; year = "2009"},122        @{date="2008-12-30"; year = "2009"},123        @{date="2008-12-31"; year = "2009"},124        @{date="2009-01-01"; year = "2009"},125        @{date="2009-01-02"; year = "2009"},126        @{date="2009-01-03"; year = "2009"},127        @{date="2009-12-31"; year = "2009"},128        @{date="2010-01-01"; year = "2009"},129        @{date="2010-01-02"; year = "2009"},130        @{date="2010-01-03"; year = "2009"},131        @{date="2010-01-04"; year = "2010"},132        @{date="2014-01-03"; year = "2014"},133        @{date="2015-01-02"; year = "2015"},134        @{date="2015-01-03"; year = "2015"},135        @{date="2020-01-03"; year = "2020"},136        @{date="2025-01-03"; year = "2025"},137        @{date="2026-01-02"; year = "2026"},138        @{date="2026-01-03"; year = "2026"},139        @{date="2031-01-03"; year = "2031"}140    ) {141        param($date, $year)142        Get-Date -Date $date -UFormat %G | Should -BeExactly $year143    }144 145    # Using the same test cases as V for ISO week date component parity, plus some more esoteric ones146    It "using -uformat 'g' produces the correct output (<date>:<yy>" -TestCases @(147        @{date="0055-12-31"; yy = "55"},148        @{date="0325-01-01"; yy = "25"},149        @{date="0777-01-01"; yy = "76"},150        @{date="1998-01-02"; yy = "98"},151        @{date="1998-01-03"; yy = "98"},152        @{date="2003-01-03"; yy = "03"},153        @{date="2004-01-02"; yy = "04"},154        @{date="2004-01-03"; yy = "04"},155        @{date="2005-01-01"; yy = "04"},156        @{date="2005-01-02"; yy = "04"},157        @{date="2005-12-31"; yy = "05"},158        @{date="2006-01-01"; yy = "05"},159        @{date="2006-01-02"; yy = "06"},160        @{date="2006-12-31"; yy = "06"},161        @{date="2007-01-01"; yy = "07"},162        @{date="2007-12-30"; yy = "07"},163        @{date="2007-12-31"; yy = "08"},164        @{date="2008-01-01"; yy = "08"},165        @{date="2008-12-28"; yy = "08"},166        @{date="2008-12-29"; yy = "09"},167        @{date="2008-12-30"; yy = "09"},168        @{date="2008-12-31"; yy = "09"},169        @{date="2009-01-01"; yy = "09"},170        @{date="2009-01-02"; yy = "09"},171        @{date="2009-01-03"; yy = "09"},172        @{date="2009-12-31"; yy = "09"},173        @{date="2010-01-01"; yy = "09"},174        @{date="2010-01-02"; yy = "09"},175        @{date="2010-01-03"; yy = "09"},176        @{date="2010-01-04"; yy = "10"},177        @{date="2014-01-03"; yy = "14"},178        @{date="2015-01-02"; yy = "15"},179        @{date="2015-01-03"; yy = "15"},180        @{date="2020-01-03"; yy = "20"},181        @{date="2025-01-03"; yy = "25"},182        @{date="2026-01-02"; yy = "26"},183        @{date="2026-01-03"; yy = "26"},184        @{date="2031-01-03"; yy = "31"}185    ) {186        param($date, $yy)187        Get-Date -Date $date -UFormat %g | Should -BeExactly $yy188    }189 190    # Using the same test cases as V for ISO week date component parity191    It "using -uformat 'u' produces the correct output (<date>:<dayOfWeek>)" -TestCases @(192        @{date="1998-01-02"; dayOfWeek = "5"},193        @{date="1998-01-03"; dayOfWeek = "6"},194        @{date="2003-01-03"; dayOfWeek = "5"},195        @{date="2004-01-02"; dayOfWeek = "5"},196        @{date="2004-01-03"; dayOfWeek = "6"},197        @{date="2005-01-01"; dayOfWeek = "6"},198        @{date="2005-01-02"; dayOfWeek = "7"},199        @{date="2005-12-31"; dayOfWeek = "6"},200        @{date="2006-01-01"; dayOfWeek = "7"},201        @{date="2006-01-02"; dayOfWeek = "1"},202        @{date="2006-12-31"; dayOfWeek = "7"},203        @{date="2007-01-01"; dayOfWeek = "1"},204        @{date="2007-12-30"; dayOfWeek = "7"},205        @{date="2007-12-31"; dayOfWeek = "1"},206        @{date="2008-01-01"; dayOfWeek = "2"},207        @{date="2008-12-28"; dayOfWeek = "7"},208        @{date="2008-12-29"; dayOfWeek = "1"},209        @{date="2008-12-30"; dayOfWeek = "2"},210        @{date="2008-12-31"; dayOfWeek = "3"},211        @{date="2009-01-01"; dayOfWeek = "4"},212        @{date="2009-01-02"; dayOfWeek = "5"},213        @{date="2009-01-03"; dayOfWeek = "6"},214        @{date="2009-12-31"; dayOfWeek = "4"},215        @{date="2010-01-01"; dayOfWeek = "5"},216        @{date="2010-01-02"; dayOfWeek = "6"},217        @{date="2010-01-03"; dayOfWeek = "7"},218        @{date="2010-01-04"; dayOfWeek = "1"},219        @{date="2014-01-03"; dayOfWeek = "5"},220        @{date="2015-01-02"; dayOfWeek = "5"},221        @{date="2015-01-03"; dayOfWeek = "6"},222        @{date="2020-01-03"; dayOfWeek = "5"},223        @{date="2025-01-03"; dayOfWeek = "5"},224        @{date="2026-01-02"; dayOfWeek = "5"},225        @{date="2026-01-03"; dayOfWeek = "6"},226        @{date="2031-01-03"; dayOfWeek = "5"}227    ) {228        param($date, $dayOfWeek)229        Get-Date -Date $date -UFormat %u | Should -BeExactly $dayOfWeek230    }231    It "Passing '<name>' to -uformat produces a descriptive error (<errorId>)" -TestCases @(232        @{ name = "`$null"      ; value = $null; errorId = "ParameterArgumentValidationErrorNullNotAllowed" }233        @{ name = "empty string"; value = ""; errorId = "ParameterArgumentValidationErrorEmptyStringNotAllowed" }234    ) {235        param($value, $errorId)236        { Get-Date -Date 1/1/1970 -UFormat $value -ErrorAction Stop } | Should -Throw -ErrorId "${errorId},Microsoft.PowerShell.Commands.GetDateCommand"237    }238 239    It "Get-date works with pipeline input" {240        $x = New-Object System.Management.Automation.PSObject241        $x | Add-Member NoteProperty Date ([DateTime]::Now)242        $y = @($x,$x)243        ($y | Get-Date).Length | Should -Be 2244    }245 246    It "the LastWriteTime alias works with pipeline input" {247        $folder = "GetDateTest"248        $pathString = Join-Path -Path $TestDrive -ChildPath $folder249        New-Item -Path $TestDrive -Name $folder -ItemType directory -Force250        for($i = 0; $i -lt 10; $i++)251        {252            $temp = [guid]::NewGuid()253            $pathString2 = Join-Path -Path $pathString -ChildPath $temp254            New-Item -Path $pathString -Name $temp -ItemType file -Force255 256            for($j = 0; $j -lt 100; $j++)257            {258                Add-Content -Path $pathString2 -Value $j259            }260 261        }262 263        $result1 = Get-ChildItem -Path $pathString | Get-Date264        $result2 = Get-ChildItem -Path $pathString | Get-Date265 266        $result1.Length | Should -Be 10267        $result1.Length -eq $result2.Length | Should -BeTrue268 269        for($i = 0; $i -lt $result1.Length; $i++)270        {271            $result1[$i] -eq $result2[$i] | Should -BeTrue272        }273 274        Get-ChildItem -Path $pathString | Remove-Item275        Remove-Item -Path $pathString -Force -Recurse276    }277 278}279 280Describe "Get-Date" -Tags "CI" {281    It "-Format FileDate works" {282        Get-Date -Date 0030-01-01T01:02:03.0004 -Format FileDate | Should -Be "00300101"283    }284 285    It "-Format FileDateTime works" {286        Get-Date -Date 0030-01-01T01:02:03.0004 -Format FileDateTime | Should -Be "00300101T0102030004"287    }288 289    It "-Format FileDateTimeUniversal works (1)" {290        Get-Date -Date 0030-01-01T01:02:03.0004z -Format FileDateTimeUniversal | Should -Be "00300101T0102030004Z"291    }292 293    It "-Format FileDateTimeUniversal works (2)" {294        Get-Date -Date 0030-01-01T01:02:03.0004z -Format FileDateUniversal | Should -Be "00300101Z"295    }296 297    It "Should have colons when ToString method is used" {298        (Get-Date).ToString().Contains(":")                   | Should -BeTrue299        (Get-Date -DisplayHint Time).ToString().Contains(":") | Should -BeTrue300        (Get-Date -DisplayHint Date).ToString().Contains(":") | Should -BeTrue301    }302 303    It "Should be able to use the format flag" {304        # You would think that one could use simple loops here, but apparently powershell in Windows returns different values in loops305 306        (Get-Date -Format d).Contains("/") | Should -BeTrue307        (Get-Date -Format D).Contains(",") | Should -BeTrue308        (Get-Date -Format f).Contains(",") -and (Get-Date -Format f).Contains(":") | Should -BeTrue309        (Get-Date -Format F).Contains(",") -and (Get-Date -Format F).Contains(":") | Should -BeTrue310        (Get-Date -Format g).Contains("/") -and (Get-Date -Format g).Contains(":") | Should -BeTrue311        (Get-Date -Format G).Contains("/") -and (Get-Date -Format G).Contains(":") | Should -BeTrue312        (Get-Date -Format m).Contains(",") -or `313        (Get-Date -Format m).Contains(":")  -or `314        (Get-Date -Format m).Contains("/") | Should -BeFalse315    }316 317    It "Should check that Get-Date can return the correct datetime from the system time" {318        $timeDifference = $(Get-Date).Subtract([System.DateTime]::Now)319 320        $timeDifference.Days         | Should -Be 0321        $timeDifference.Hours        | Should -Be 0322        $timeDifference.Minutes      | Should -Be 0323        $timeDifference.Milliseconds | Should -BeLessThan 1324        $timeDifference.Ticks        | Should -BeLessThan 10000325    }326 327    It "-UnixTimeSeconds works (<Expected>)" -TestCases @(328        @{ UnixTimeSeconds = 1577836800; Expected = [System.DateTimeOffset]::FromUnixTimeSeconds(1577836800).LocalDateTime },329        @{ UnixTimeSeconds = 0;          Expected = [System.DateTimeOffset]::UnixEpoch.LocalDateTime },330        @{ UnixTimeSeconds = -1;         Expected = [System.DateTimeOffset]::FromUnixTimeSeconds(-1).LocalDateTime }331    ) {332        param(333            [long] $UnixTimeSeconds,334            [DateTime] $Expected335        )336 337        Get-Date -UnixTimeSeconds $UnixTimeSeconds | Should -Be $Expected338    }339}340 341Describe "Get-Date -UFormat tests" -Tags "CI" {342    BeforeAll {343        $date1 = Get-Date -Date "2030-4-5 1:2:3.09"344        $date2 = Get-Date -Date "2030-4-15 13:2:3"345        $date3 = Get-Date -Date "2030-4-15 21:2:3"346 347        # 5 come from $date1 - 2030-4-5 is Friday - 5th day (the enum starts with 0 - Sunday)348        $shortDay1 = [System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.AbbreviatedDayNames[5]349        $fullDay1 = [System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.DayNames[5]350 351        # 3 come from $date1 - 2030-4-5 is April - 4th month (the enum starts with 0)352        $shortMonth1 = [System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.AbbreviatedMonthNames[3]353        $fullMonth1 = [System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.MonthNames[3]354 355        $fullDate1 = $date1.ToString("$([System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.ShortDatePattern)")356        $fullTime1 = $date1.ToString("$([System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.LongTimePattern)")357 358        $amUpper1 = [System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.AMDesignator359        $amLower1 = [System.Globalization.CultureInfo]::CurrentCulture.DateTimeFormat.AMDesignator.ToLower()360        $timeZone1 = [String]::Format("{0:+00;-00}", [Timezone]::CurrentTimeZone.GetUtcOffset( $date1 ).Hours)361    }362 363    It "Get-Date -UFormat <format> (<result>)" -TestCases @(364            # Some format specifiers is locale sensetive:365            #   - and tests work on EN-US only366            #   - and can not be full compatible with Unix 'date' utility.367            # Commented tests mean not implemented or broken format specifiers.368            @{ date = $date1; format = "%a"; result = $shortDay1 }  # locale's abbreviated weekday name369            @{ date = $date1; format = "%A"; result = $fullDay1 }   # locale's full weekday name370            @{ date = $date1; format = "%b"; result = $shortMonth1 }# locale's abbreviated month name371            @{ date = $date1; format = "%B"; result = $fullMonth1 } # locale's full month name372            @{ date = $date1; format = "%c"; result = "$shortDay1 05 $shortMonth1 2030 01:02:03" } # locale's date and time (e.g., Thu 03 Mar 2005 23:05:25)373                                                                    # We can not get compatibility with Unix374                                                                    #375            @{ date = $date1; format = "%C"; result = "20" }        # century; like %Y, except omit last two digits (e.g., 20)376            @{ date = $date1; format = "%d"; result = "05" }        # day of month (e.g., 01)377            @{ date = $date1; format = "%D"; result = "04/05/30" }  # date; same as %m/%d/%y378            @{ date = $date1; format = "%e"; result = " 5" }        # day of month, space padded; same as %_d379            @{ date = $date2; format = "%e"; result = "15" }380            @{ date = $date1; format = "%F"; result = "2030-04-05" }# Equivalent to %Y-%m-%d (the ISO 8601 date format).381            #@{ date = $date1; format = "%g"; result = "" }         # last two digits of year of ISO week number (see %G)382                                                                    # TODO: need review. Broken C# implementation.383                                                                    #384            #@{ date = $date1; format = "%G"; result = "" }         # year of ISO week number (see %V); normally useful only with %V385                                                                    # TODO: need review. Broken C# implementation.386                                                                    #387            @{ date = $date1; format = "%h"; result = $shortMonth1 }# same as %b388            @{ date = $date1; format = "%H"; result = "01" }        # hour (00..23)389            @{ date = $date2; format = "%H"; result = "13" }390            @{ date = $date1; format = "%I"; result = "01" }        # hour (01..12)391            @{ date = $date2; format = "%I"; result = "01" }392            @{ date = $date1; format = "%j"; result = "095" }       # day of year (001..366)393            @{ date = $date1; format = "%k"; result = " 1" }        # hour, space padded ( 0..23); same as %_H394            @{ date = $date2; format = "%k"; result = "13" }395            @{ date = $date1; format = "%l"; result = " 1" }        # hour, space padded ( 1..12); same as %_I396            @{ date = $date2; format = "%l"; result = " 1" }397            @{ date = $date1; format = "%m"; result = "04" }        # month (01..12)398            @{ date = $date1; format = "%M"; result = "02" }        # minute (00..59)399            #@{ date = $date1; format = "%n"; result = "`n" }      # a newline400            #@{ date = $date1; format = "%N"; result = "090000000" }# nanoseconds (000000000..999999999)401            @{ date = $date1; format = "%p"; result = $amUpper1 }   # locale's equivalent of either AM or PM; blank if not known402            #@{ date = $date1; format = "%P"; result = $amLower1 }  # like %p, but lower case403            #@{ date = $date1; format = "%q"; result = "" }         # quarter of year (1..4) - not implemented on Ununtu 17.10404            @{ date = $date1; format = "%r"; result = "01:02:03 AM" }# locale's 12-hour clock time (e.g., 11:11:04 PM)405            @{ date = $date3; format = "%r"; result = "09:02:03 PM" }406            @{ date = $date1; format = "%R"; result = "01:02" }     # 24-hour hour and minute; same as %H:%M407            @{ date = $date3; format = "%R"; result = "21:02" }408            #@{ date = $date1; format = "%s"; result = "1901563323" }# Separate tests is in the file. Seconds since 1970-01-01 00:00:00 UTC409                                                                    # TODO: need review410                                                                    #411                                                                    @{ date = $date1; format = "%S"; result = "03" }        # second (00..60)412            #@{ date = $date1; format = "%t"; result = "`t" }       # a tab413            @{ date = $date1; format = "%T"; result = "01:02:03" }  # time; same as %H:%M:%S414            @{ date = $date1; format = "%u"; result = "5" }         # day of week (1..7); 1 is Monday415            @{ date = $date1; format = "%U"; result = "13" }        # week number of year, with Sunday as first day of week (00..53)416                                                                    # TODO: need review.417                                                                    #418            #@{ date = $date1; format = "%V"; result = "" }         # Separate tests is in the file. ISO week number, with Monday as first day of week (01..53)419            #@{ date = $date1; format = "%w"; result = "" }         # day of week (0..6); 0 is Sunday420            @{ date = $date1; format = "%W"; result = "13" }        # week number of year, with Monday as first day of week (00..53)421                                                                    # TODO: need review compatibility with Unix422                                                                    #423            @{ date = $date1; format = "%x"; result = "04/05/30" }  # locale's date representation (e.g., 12/31/99)424                                                                    # TODO: need review compatibility with Unix425                                                                    #426            #@{ date = $date1; format = "%X"; result = $fullTime1 } # locale's time representation (e.g., 23:13:48)427                                                                    # TODO: need review compatibility with Unix. Broken C# implementation.428                                                                    #429            @{ date = $date1; format = "%y"; result = "30" }        # last two digits of year (00..99)430            @{ date = $date1; format = "%Y"; result = "2030" }      # year431            #@{ date = $date1; format = "%z"; result = "" }         # +hhmm numeric time zone (e.g., -0400)432            #@{ date = $date1; format = "%:z"; result = "" }        # +hh:mm numeric time zone (e.g., -04:00)433            #@{ date = $date1; format = "%::z"; result = "" }       # +hh:mm:ss numeric time zone (e.g., -04:00:00)434            #@{ date = $date1; format = "%:::z"; result = "" }      # numeric time zone with : to necessary precision (e.g., -04, +05:30)435            @{ date = $date1; format = "%Z"; result = $timeZone1 }  # alphabetic time zone abbreviation (e.g., EDT)436                                                                    # We can only check a time zone format from .Net437                                                                    # and can not check compatibility with Unix438        ) {439            param($date, $format, $result)440 441            Get-Date -Date $date -UFormat $format | Should -BeExactly $result442    }443}444