我正在尝试创建一个单元测试,以测试当时区在机器上发生变化时的情况,因为它已经被错误地设置并进行了修正。
在测试中,我需要能够在非本地时区中创建datetime对象,以确保运行测试的人员能够成功地完成测试。
从datetime构造函数中可以看到,我可以将时区设置为本地时区、UTC时区或未指定时区。
如何使用PST这样的特定时区创建日期时间?
发布于 2018-04-08 08:16:40
public struct DateTimeWithZone
{
private readonly DateTime utcDateTime;
private readonly TimeZoneInfo timeZone;
public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone)
{
var dateTimeUnspec = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified);
utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTimeUnspec, timeZone);
this.timeZone = timeZone;
}
public DateTime UniversalTime { get { return utcDateTime; } }
public TimeZoneInfo TimeZone { get { return timeZone; } }
public DateTime LocalTime
{
get
{
return TimeZoneInfo.ConvertTime(utcDateTime, timeZone);
}
}
}
发布于 2018-04-08 09:48:28
DateTimeOffset结构正是为这种类型的使用而创建的。
下面是一个创建具有特定时区的DateTimeOffset对象的示例:
DateTimeOffset do1 = new DateTimeOffset(2008, 8, 22, 1, 0, 0, new TimeSpan(-5, 0, 0));
https://stackoverflow.com/questions/-100003803
复制相似问题