有人可以指出我所期望的id所引用的所有时区的完整列表TimeZoneInfo.FindTimeZoneById()吗?我无法在任何地方找到列表,我查看了.NET文档.
我正在尝试创建一个单元测试来测试机器上时区变化的情况,因为它已被错误地设置然后更正.
在测试中,我需要能够在非本地时区创建DateTime对象,以确保运行测试的人员无论身在何处都能成功完成.
从我从DateTime构造函数中可以看到,我可以将TimeZone设置为本地时区,UTC时区或未指定.
如何使用PST等特定时区创建DateTime?
是否有程序或表格为每个国家/地区提供默认时区?
是的,美国,加拿大和俄罗斯有多个时区.(我认为每个其他国家只有一个.)但如果一个国家知道而不是仅仅提供从格林尼治标准时间开始的名单,那么最好开始.
最好是在C#中,但我会把它带入任何东西并转换为C#.
我在服务器和客户端之间转换日期时遇到了问题,两者都在德国运行.客户端计算机上的区域设置可以设置为英国或德国.我从服务器接收CET格式的日期,我需要在UI上将此时间表示为英国时间.例如,从服务器收到的时间,例如01/07/2010 01:00:00应该在UI上表示为01/07/2010 00:00:00.我已经为此目的编写了一个转换器,但是在运行它时会产生2小时的时差.下面是代码,请帮忙吗?
public class LocalToGmtConverter : IDateConverter
{
private readonly TimeZoneInfo timeZoneInfo;
public LocalToGmtConverter()
: this(TimeZoneInfo.Local)
{
}
public LocalToGmtConverter(TimeZoneInfo timeZoneInfo)
{
this.timeZoneInfo = timeZoneInfo;
}
public DateTime Convert(DateTime localDate)
{
var utcKind = DateTime.SpecifyKind(localDate, DateTimeKind.Utc);
return utcKind;
}
public DateTime ConvertBack(object fromServer)
{
DateTime serverDate = (DateTime)fromServer;
var utcOffset = timeZoneInfo.GetUtcOffset(serverDate);
var uiTime = serverDate- utcOffset;
return uiTime;
}
}
Run Code Online (Sandbox Code Playgroud) 如何获取另一个UTC位置的时间,或者至少在计算机中设置的UTC时间值,以便我可以增加/减少当前时间并获得我想要的内容?
我的具体问题是:
我在一个特定的位置,我想知道在英国几点钟.