zoukankan      html  css  js  c++  java
  • Java~时间戳小知识

    大叔对java时间戳使用的总结

    1. Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒!
    2. .net里的时间戳与java不同,所有需要特殊处理一个它的其实时间,而且.net里时间戳为double,如何要给java传输,需要转为long!
    3. java与.net时间在进行传输时,不建议直接使用时间字符串,因为会有兼容问题,还是建议使用时间戳为标准.
    4. 开一个.net里的一个扩展方法,主要用来生成java的long类型及起始时间的时间戳
    5. 注意java里的setTime,使用的时间戳参数为UTC时间戳

    C#里相关时间戳的扩展方法

        /// <summary>
        /// 时间帮助类
        /// </summary>
        public class TimeHelper
        {
            /// <summary>
            /// 日期转换成unix时间戳
            /// </summary>
            /// <param name="dateTime"></param>
            /// <returns></returns>
            public static long DateTimeToUnixTimestamp(DateTime dateTime)
            {
                var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local);
                return Convert.ToInt64((dateTime - start).TotalMilliseconds);
            }
    
            /// <summary>
            /// unix时间戳转换成日期
            /// </summary>
            /// <param name="unixTimeStamp">时间戳(秒)</param>
            /// <returns></returns>
            public static DateTime UnixTimestampToDateTime(DateTime target, long timestamp)
            {
                var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local);
                return start.AddSeconds(timestamp);
            }
    
        }

    在C#里为java传输时,需要把本地时间转为UTC时间

    TimeHelper.DateTimeToUnixTimestamp(DateTime.Now.ToUniversalTime());

    这样在java时,直接setTime后,就是本地时间了

        Date d1 = new Date();
        d1.setTime(1490232651510L);
        System.err.println(d1);

    感谢各位的阅读!

    知识在于积累!

  • 相关阅读:
    对宏的另外一些认识 及 assert.h的实现细节
    不要想太多
    线段树
    SQL基础 利用SELECT检索数据
    hidden表单值无法重置的缺陷
    oracle 数据库登陆
    基于ejb3,对JDBC进行封装,让使用JDBC时能像hibernate使用annotation注解一样简便,而且更加轻巧
    GoJS的一些使用技巧
    GoJS的学习使用
    灵活使用trim方法
  • 原文地址:https://www.cnblogs.com/lori/p/6603590.html
Copyright © 2011-2022 走看看