美文网首页
c#DateTime解析java服务器时间戳知识点

c#DateTime解析java服务器时间戳知识点

作者: 光棍狗没有可持续发展 | 来源:发表于2018-05-17 16:07 被阅读0次

    DateTime dt = new DateTime();

    Debug.LogError(dt.toString("yy年mm月dd日HH时MM分ss秒"));

    打印出来的值:01年00月01日00时01分00秒

    表明DateTime的时间是从01年00月01日00时01分00秒开始算起的,MSDN也有说明:“DateTime值类型表示日期和时间范围内的值从 00:00:00 (午夜),1 月 1 日 0001 公元 (基督纪元) 11:59:59 PM,通过使用到公元 9999 年 12 月 31 日(C.E.)在公历日历中。”

    所以,DateTime.Now表示从01年00月01日00时01分00秒开始到当前的时间值,new DateTime(1970, 1, 1)表示从01年00月01日00时01分00秒开始到1970.1.1的时间值。

    TimeSpan表示一个时间跨度,TimeSpan.FromHours(8)表示8个小时的时间跨度,还有其它方法相同用法。

    .net开发中计算的都是标准时区的差,但java的解析时间跟时区有关,java服务器系统时区不是标准时区,解析时间会差8个小时(服务器自己算好误差了除外)。如果服务器发过来的时间戳是从1970.1.1算起,需要计算:

    DateTime dt_1970 = new DateTime(1970, 1, 1);

    long tricks_1970 = dt_1970.Ticks;

    TimeSpan span = TimeSpan.FromHours(8);

     long time_tricks = tricks_1970 + (服务器发过来的时间戳) + span.Ticks;

    相关文章

      网友评论

          本文标题:c#DateTime解析java服务器时间戳知识点

          本文链接:https://www.haomeiwen.com/subject/yqibdftx.html