Create datetime object of other timezone in Powershell

后端 未结 2 699
南方客
南方客 2021-01-19 04:24

Basically I am trying to find a way to convert datetime of a particular timezone to other timezone while taking DST into consideration too. e.g.

What is

相关标签:
2条回答
  • 2021-01-19 05:15

    Working with TimeZones can get pretty tricky. Thank god for the updates they added in .NET 3.5 and 4.0. I worked on several time zone projects and in 2.0 is was nearly impossible without iterating the registry and building your own list of TimeZones.

    Now you can get a list of TimeZones by using the TimeZoneInfo class (which you seem to be familiar with): http://msdn.microsoft.com/en-us/library/system.timezoneinfo.aspx

    Just beware that a system that may not be updating automatically from Windows Update could potentially have different time zones than a system that is totally up to date. Microsoft pushes out updates for time zones when needed.

    I think your code seems OK. To be honest, I'm not much of a PowerShell dev (C# for me), but it seems good.

    0 讨论(0)
  • 2021-01-19 05:16

    This solution worked well for me:

    $cstzone = [System.TimeZoneInfo]::FindSystemTimeZoneById("Central Standard Time")
    $csttime = [System.TimeZoneInfo]::ConvertTimeFromUtc((Get-Date).ToUniversalTime(), $cstzone)
    

    You can then manipulate the $csttime variable just like a datetime object:

    Get-Date $csttime.AddHours(-1) -f "MM\dd\yyyy HH:mm:ss"
    

    References: http://msdn.microsoft.com/en-us/library/system.timezoneinfo.converttimefromutc(v=vs.110).aspx http://technet.microsoft.com/en-us/library/ee692801.aspx

    0 讨论(0)
提交回复
热议问题