[英]C#: Unix timestamp and DateTime
我们正在开发一个必须处理Unix时间戳和C#DateTime对象的C#Web应用程序。 时间戳必须转换为DateTime对象。
以下示例显示了我的问题:DateTime应该为“ 18.10.2011 14:02:32”
System.DateTime time = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
time = time.AddSeconds(1318939352);
System.Console.Out.WriteLine("Time: " + time); // -> 18.10.2011 12:02:32
如果我在开发人员机器上调用ToLocalTime(),则DateTime是正确的:
System.DateTime time = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
time = time.AddSeconds(1318939352).ToLocalTime();
System.Console.Out.WriteLine("Time: " + time); // -> 18.10.2011 14:02:32
但是该应用程序将在另一个时区(GMT标准时间)托管的服务器上运行,因此我必须处理其他时区,第二个示例在此服务器上失败。 无论我在哪里托管应用程序,在这种情况下,日期都应始终打印为18.10.2011 14:02:32。
有人知道我该怎么做吗? 提前致谢!
最好的问候,Thorsten
您可以看看TimeZoneInfo
public struct DateTimeWithZone
{
private readonly DateTime utcDateTime;
private readonly TimeZoneInfo timeZone;
public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone)
{
utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTime, 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); }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.