[英]Capture UTC Time From String And Format All DateTime To It
我有一個以字符串格式返回的日期
string utcdt = "2017-01-01T15:48:00-07:00";
如何從上面的字符串中提取山區時間07:00
並將任何日期格式化為該區域格式?
我不想更改計算機上的時區,因為返回到變量utcdt
的UTC時間可能會有所不同,並且WinForm應用程序中使用的所有其他日期都需要符合相同的時區規范。
編輯
我正在使用FEDEx API,這是返回日期的一種格式
string utcdt = "2017-01-01T15:48:00-07:00";
現在稍后在應用程序中
foreach (TrackingDateOrTimestamp timestamp in trackDetail.DatesOrTimes)
Console.WriteLine("{0}: {1}", timestamp.Type, timestamp.DateOrTimestamp);
哪個返回我當地時間的數據-含義
01/01/2017 17:48:00
我正在嘗試提出一種解決方案,以使日期保持一致。
您可以使用DateTimeOffset
類將字符串解析為本地時間,並將其與UTC進行偏移。 然后,您可以將偏移量另存為TimeSpan
。
稍后再使用DateTimeOffset
類轉換另一個DateTime
您必須使用相同的偏移量:
string dto = "2017-01-01T15:48:00-07:00";
DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(dto);
DateTime utcDateTime = dateTimeOffset.UtcDateTime;
TimeSpan timezoneOffset = dateTimeOffset.Offset;
MessageBox.Show("UTC DateTime: " + utcDateTime);
MessageBox.Show("Offset: " + timezoneOffset);
DateTimeOffset nowWithOffset = DateTimeOffset.UtcNow.ToOffset(timezoneOffset);
MessageBox.Show("Now in other timezone: " + nowWithOffset.ToString("O"));
請注意其他評論者寫了什么:這不能正確處理夏時制。 為了解決這個問題,您實際上需要知道實時時區。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.