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

2018-05-17  本文已影响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;

上一篇下一篇

猜你喜欢

热点阅读