zoukankan      html  css  js  c++  java
  • C#中UnixTime和DateTime的转换(转载)

    由于在API请求中返回回来的时间格式为UNIX形式,需要转换成正常的显示方式,在网上找到了这么一个例子。

    使用是在C#中使用的,所以WP8开发应该也可以。

    转载源地址:http://blog.linuxphp.org/?action=show&id=154

    转换代码:

    using System;   
    using System.Collections.Generic;   
    using System.Linq;   
    using System.Text;   
      
    namespace MYspace   
    {   
        public class UnixTime   
        {   
            private static DateTime BaseTime = new DateTime(1970,1,1);   
      
            /// <summary>   
            /// 将unixtime转换为.NET的DateTime   
            /// </summary>   
            /// <param name="timeStamp">秒数</param>   
            /// <returns>转换后的时间</returns>   
            public static DateTime FromUnixTime(long timeStamp)   
            {   
                return new DateTime((timeStamp + 8 * 60 * 60) * 10000000 + BaseTime.Ticks);   
            }   
      
            /// <summary>   
            /// 将.NET的DateTime转换为unix time   
            /// </summary>   
            /// <param name="dateTime">待转换的时间</param>   
            /// <returns>转换后的unix time</returns>   
            public static long FromDateTime(DateTime dateTime)   
            {   
                return (dateTime.Ticks - BaseTime.Ticks) / 10000000 - 8 * 60 * 60;   
            }   
        }   
    }   

    由于转载的这个版本,会因为时区的原因而受限,因此做了些改进,下面是改进版代码:

            private static DateTime BaseTime = new DateTime(1970, 1, 1);
    
            /// <summary>   
            /// 将unixtime转换为.NET的DateTime   
            /// </summary>   
            /// <param name="timeStamp">秒数</param>   
            /// <returns>转换后的时间</returns>   
            public static DateTime FromUnixTime(long timeStamp)
            {
                return TimeZone.CurrentTimeZone.ToLocalTime(new DateTime (timeStamp * 10000000 + BaseTime.Ticks));
            }
    
            /// <summary>   
            /// 将.NET的DateTime转换为unix time   
            /// </summary>   
            /// <param name="dateTime">待转换的时间</param>   
            /// <returns>转换后的unix time</returns>   
            public static long FromDateTime(DateTime dateTime)
            {
                return (TimeZone.CurrentTimeZone.ToUniversalTime(dateTime).Ticks - BaseTime.Ticks) / 10000000;
            }  

    使用TimeZone进行对时区上的处理,这样就不会再因为用户所在时区的原因导致显示时间的出错。

  • 相关阅读:
    串口通信理论知识
    串口通信基础
    串口中断程序步骤及代码
    Django之CRM项目Day6-公私户转换问题解决 班主任功能
    Django之CRM项目Day5-跳转页面 跟进记录 报名记录
    Django之CRM项目Day4-编辑客户 公私户 模糊查询
    Django之CRM项目Day3-客户展示及分页
    Django的ModelForm
    Django相关面试题
    Django基础自测
  • 原文地址:https://www.cnblogs.com/Scohura/p/3635167.html
Copyright © 2011-2022 走看看