码迷,mamicode.com
首页 > 其他好文 > 详细

DateTime使用(时区)

时间:2014-10-17 15:28:36      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   使用   for   

一、时区的用法

项目背景:商业软件涉及到许可证的问题,用于管理客户对软件的使用。项目组开发了一个生成license的工具,里面包含一系列的规则(如licenseEffectiveStartDate以及licenseExpirationDate)。那么问题来了:假如licenseEffectiveStartDate设定为2014/10/17,软件是给美国客户来使用,那么在软件中要怎样设定才能让美国客户在其当地时间的2014/10/17才能使用软件呢。

二、解决方案

  1. 在license生成工具中添加时区列表,用来设定license是对哪个时区的客户使用的。

    bubuko.com,布布扣

    1 //得到时区列表
    2 ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
    3 //得到所选择的时区
    4   TimeZoneInfo timeZone = timeZones.First(o => o.Id == cmb_TimeZone.SelectedValue.ToString());
    5 int timeZone = timeZone.BaseUtcOffset.Hours;

     

  2. 从NTP服务器中取出UTC时间,然后加上客户所在的时区,也即是license里面设定的时区,就可以得到客户的当地时间LocalDateTime。
     1  /// <summary>
     2         /// get current date time from net work.
     3         /// </summary>
     4         /// <returns></returns>
     5         private DateTime GetLocalDateTime(int timeZone)
     6         {
     7             DateTime utcDateTime = new DateTime();
     8             try
     9             {
    10                 utcDateTime = NTPHelper.GetUTCDate();
    11                 return utcDateTime.AddHours(timeZone);
    12             }
    13             catch
    14             {
    15                 throw new Exception(CMsgDisConncetion);
    16             }
    17         }

     

  3. DateTime.Compare(t1,t2)即可判断软件何时可用,何时到期。
     1  /// <summary>
     2         /// determine whether current date reach for specific date
     3         /// </summary>
     4         /// <param name="currentDateTime">current date time</param>
     5         /// <param name="specificDateTime">sepcific date time</param>
     6         /// <returns></returns>
     7         private bool IsReachSpecificDate(DateTime currentDateTime, DateTime specificDateTime)
     8         {
     9             return DateTime.Compare(currentDateTime, specificDateTime) > 0 ? true : false;
    10         }

DateTime使用(时区)

标签:style   blog   http   color   io   os   ar   使用   for   

原文地址:http://www.cnblogs.com/JustYong/p/4031064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!