我转换了一个字符串,表示我用来创建DateTime对象的太平洋时区的时间:
var pacificDateTime = new DateTime(2016, 11, 16, 15, 0, 0) // 11/16/2016 3:00:00 PM
Run Code Online (Sandbox Code Playgroud)
使用它,我创建了一个DateTimeOffset因为最终它变得更容易使用.
var pacificTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var dateTimeNoKind = new DateTime(pacificDateTime.Ticks, DateTimeKind.Unspecified)
var DateTimeOffsetValue = TimeZoneInfo.ConverTimeToUtc(dateTimeNoKind, pacificTimeZoneInfo) // 11/16/2016 11:00:00 PM
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.UTC与Pacific之间的区别在于UTC提前8小时(给定时间在夏令时内).
然后我想从UTC转换为AEST - 但这是出现问题的地方:
var australianEasternTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
TimeZoneInfo.ConvertTime(DateTimeOffsetValue, australianEasternTimeZoneInfo) // 11/17/2016 10:00:00 AM
Run Code Online (Sandbox Code Playgroud)
AEST比UTC早10个小时.我曾预料到价值,11/17/2016 09:00:00 AM但我的结果却增加了一小时.
作为测试,当我从UTC时间转换为PST或GMT或EST时,它们似乎正确地转换回来.
我觉得我错过了一些明显的东西或忽略了一些简单的东西?
这是我第一次尝试启动的旧项目。我收到此错误:
Could not load file or assembly 'Microsoft.Web.Infrastructure,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of
its dependencies. The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)
VS2017 上的 MVC4 (dotnet 4.5) 应用程序。
我遇到了这个 S/O 帖子,但我无法完全尝试接受的答案,因为当我尝试保存更改时,它会Copy Local继续更改回False原状。此外,另一个 S/O 帖子似乎表明我不应该篡改Copy Local属性,以便阻止我设置Copy Local为的行为True似乎是故意的(或者可能表明“在全局程序集缓存中找到了程序集”。
为什么我不能设置Copy Local字段?关于如何尝试在 VS2017 中更新Copy Localto 的任何想法True?