programing

PowerShell에서 특정 UTC DateTime을 사용하여 DateTime 개체 생성

css3 2023. 11. 6. 21:57

PowerShell에서 특정 UTC DateTime을 사용하여 DateTime 개체 생성

저는 그들을 보호하기 위해DateTimePowerShell에 특정 UTC 타임스탬프가 있는 개체입니다.이것을 하는 가장 간단한 방법은 무엇입니까?

노력했습니다.

Get-Date
    -Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern
    -Date "1970-01-01 00:00:00Z"

하지만 이 결과를 알 수 있습니다.

1969-12-31 19:00:00Z

몇 시간 동안 쉬거든요.제가 잘못 이해한 부분은 어디 있습니까?

DateTime개체 자체가 적절한 UTC 시간으로 생성되고 있습니다.그러나 PowerShell이 출력하면 이를 현지 문화와 시간대로 변환하므로 차이점이 있습니다.

증명:

$UtcTime = Get-Date -Date "1970-01-01 00:00:00Z"
$UtcTime.ToUniversalTime()
(get-date).ToUniversalTime().ToString("yyyyMMddTHHmmssfffffffZ")
$utctime = New-Object DateTime 1970, 1, 1, 0, 0, 0, ([DateTimeKind]::Utc)

출력하면$utctime, 그러면 다음을 얻을 수 있습니다.

1. januar 1970 00:00:00

또한.$utctime.Kind로 올바르게 설정되어 있습니다.Utc.

$time = [DateTime]::UtcNow | get-date -Format "yyyy-MM-ddTHH:mm:ssZ"

이것 또한 효과가 있는 것으로 보입니다.

SpecificKind 메서드를 사용할 수 있습니다.

PSC:\IT\s3> $time stamp

2018년 7월 18일 (수) 오후 7:57:14

PSC:\IT\s3> $timestamp.kind

지정되지 않음

PSC:\IT\s3> $uttimestamp = [DateTime]::Kind 지정($time stamp, [DateTimeKind]::UTC)

PSC:\IT\s3> $uttime 스탬프

2018년 7월 18일 (수) 오후 7:57:14

PSC:\IT\s3> $uttimestamp.kind

UTC

에서 작동하는 방법은 이렇습니다.NET 맞죠?PowerShell은 ToUniversalTime 메서드만 호출합니다.출처: http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx

The Coordinated Universal Time (UTC) is equal to the local time minus the 
UTC offset. For more information about the UTC offset, see TimeZone.GetUtcOffset.
The conversion also takes into account the daylight saving time rule that applies 
to the time represented by the current DateTime object. 

언급URL : https://stackoverflow.com/questions/10487011/creating-a-datetime-object-with-a-specific-utc-datetime-in-powershell