C \ # 에서 Unix Time 과 DateTime 의 전환

7083 단어 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 을 사용 하여 시간 대 에 대한 처 리 를 하면 사용자 가 있 는 시간 대 때문에 시간 을 표시 하 는 오류 가 발생 하지 않 습 니 다.

좋은 웹페이지 즐겨찾기