【问题标题】:Getting Current Date and Time of a Specific Country获取特定国家的当前日期和时间
【发布时间】:2015-07-20 14:51:53
【问题描述】:

我需要从另一个国家的服务器获取土耳其(伊斯坦布尔)的日期和时间。所以我可以在我的 asp.net 项目中使用它并将它添加到我的 sql server 数据库中。你能帮帮我吗?

【问题讨论】:

  • 您可以从客户端发送。您可以通过这种方式在服务器上获取本地时间
  • @OlegYudovich 如果客户也在另一个国家怎么办?一定有办法的。
  • 帮助什么?你不能使用时区吗?
  • @MaciejLos 这对我没有帮助。
  • 您想始终在土耳其时间节省时间?

标签: c# asp.net datetime timezone


【解决方案1】:

试试这个:

var info = TimeZoneInfo.FindSystemTimeZoneById("Turkey Standard Time");
DateTimeOffset localServerTime = DateTimeOffset.Now;
DateTimeOffset localTime= TimeZoneInfo.ConvertTime(localServerTime, info);

【讨论】:

  • 如何将 DateTimeOffset(10.05.2015 01:48:06 +03:00) 转换为 DateTime (10.05.2015 01:48:06)?
  • 从 datetomeOffset 属性 LocalDateTime :istambulTime.LocalDateTime
  • @OlegYudovich - .LocalDateTime 会将其转换回服务器的时区。只需使用 .DateTime 属性即可。
【解决方案2】:

您可以通过这种方式获得土耳其时间:

 // Get time in local time zone 
 DateTime thisTime = DateTime.Now;
 Console.WriteLine("Time in {0} zone: {1}",
        TimeZoneInfo.Local.IsDaylightSavingTime(thisTime) ?
        TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName, thisTime);
 Console.WriteLine("   UTC Time: {0}",
        TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local));

 // Get GTB Standard Time zone - (GMT+02:00) Athens, Istanbul, Minsk
 TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("GTB Standard Time");
 DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);      
 Console.WriteLine("Time in {0} zone: {1}",
        tst.IsDaylightSavingTime(tstTime) ?
        tst.DaylightName : tst.StandardName, tstTime);
 Console.WriteLine("   UTC Time: {0}",
        TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));

更多信息请见:
TimeZoneInfo.FindSystemTimeZoneById Method
Microsoft Time Zone Index Values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    相关资源
    最近更新 更多