C# 时间与时间戳互转 13位

/// <summary>
        /// 获取时间戳
        /// </summary>
        /// <returns></returns>
        public static string GetTimeStamp(System.DateTime time)
        {
            long ts = ConvertDateTimeToInt(time);
            return ts.ToString();
        }
        /// <summary>
        /// 将c# DateTime时间格式转换为Unix时间戳格式
        /// </summary>
        /// <param name="time">时间</param>
        /// <returns>long</returns>
        public static long ConvertDateTimeToInt(System.DateTime time)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
            long t = (time.Ticks - startTime.Ticks) / 10000;   //除10000调整为13位
            return t;
        }
        /// <summary>
        /// 时间戳转为C#格式时间
        /// </summary>
        /// <param name=”timeStamp”></param>
        /// <returns></returns>
        private DateTime ConvertStringToDateTime(string timeStamp)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(timeStamp + "0000");
            TimeSpan toNow = new TimeSpan(lTime);
            return dtStart.Add(toNow);
        } 
 /// <summary>
    /// 时间戳
    /// </summary>
    public class TimeHelp
    {
        /// <summary>
        /// 获取时间戳
        /// </summary>
        /// <returns></returns>
        public static string GetTimeStamp(System.DateTime time,int length=13)
        {
            long ts = ConvertDateTimeToInt(time);
            return ts.ToString().Substring(0,length);
        }
        /// <summary>
        /// 将c# DateTime时间格式转换为Unix时间戳格式
        /// </summary>
        /// <param name="time">时间</param>
        /// <returns>long</returns>
        public static long ConvertDateTimeToInt(System.DateTime time)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
            long t = (time.Ticks - startTime.Ticks) / 10000;   //除10000调整为13位
            return t;
        }
        /// <summary>
        /// 时间戳转为C#格式时间
        /// </summary>
        /// <param name=”timeStamp”></param>
        /// <returns></returns>
        public static DateTime ConvertStringToDateTime(string timeStamp)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(timeStamp + "0000");
            TimeSpan toNow = new TimeSpan(lTime);
            return dtStart.Add(toNow);
        }

        /// <summary>
        /// 时间戳转为C#格式时间10位
        /// </summary>
        /// <param name="timeStamp">Unix时间戳格式</param>
        /// <returns>C#格式时间</returns>
        public static DateTime GetDateTimeFrom1970Ticks(long curSeconds)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            return dtStart.AddSeconds(curSeconds);
        }

        /// <summary>
        /// 验证时间戳
        /// </summary>
        /// <param name="time"></param>
        /// <param name="interval">差值(分钟)</param>
        /// <returns></returns>
        public static bool IsTime(long time, double interval)
        {
            DateTime dt = GetDateTimeFrom1970Ticks(time);
            //取现在时间
            DateTime dt1 = DateTime.Now.AddMinutes(interval);
            DateTime dt2 = DateTime.Now.AddMinutes(interval * -1);
            if (dt > dt2 && dt < dt1)
            {
                return true;
            }
            else {
                return false;
            }
        }

        /// <summary>
        /// 判断时间戳是否正确(验证前8位)
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static bool IsTime(string time)
        {
            string str = GetTimeStamp(DateTime.Now,8);
            if (str.Equals(time))
            {
                return true;
            }
            else {
                return false;
            }
        }
    }
时间: 2024-10-04 17:31:58

C# 时间与时间戳互转 13位的相关文章

c#时间与时间戳互转13位

Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数.Unix时间戳不仅被使用在Unix 系统.类Unix系统中,也在许多其他操作系统中被广告采用. [注意]目前相当一部分操作系统使用32位二进制数字表示时间.此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒(二进制:01111111

C# 时间与时间戳互转

/// <summary> /// 将c# DateTime时间格式转换为Unix时间戳格式 /// </summary> /// <param name="time">时间</param> /// <returns>long</returns> public static long ConvertDateTimeToInt(System.DateTime time) { System.DateTime start

java 时间戳和PHP时间戳 的转换[10位和13位]

2013-08-02 14:06 9826人阅读 评论(2) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结一下java 时间戳和PHP时间戳 的转换问题:  由于精度不同,导致长度不一致,直接转换错误.  JAVA时间戳长度是13位,如:1294890876859  PHP时间戳长度是10位, 如:1294890859 主要最后三位的不同,JAVA时间戳在PHP中使用,去掉后三位,如:1294890876859-> 1294890876 结果:2011-01-13 11

iOS 本地时间、UTC时间、时间戳等操作

//获得当前时间并且转为字符串 - (NSString *)dateTransformToTimeString { NSDate *currentDate = [NSDate date];//获得当前时间为UTC时间 2014-07-16 07:54:36 UTC (UTC时间比标准时间差8小时) //转为字符串 NSDateFormatter*df = [[NSDateFormatter alloc]init];//实例化时间格式类 [df setDateFormat:@"yyyy-MM-dd

js sql C#时间、时间戳相互转换

js. sql. C#时间.时间戳相互转换 //1.获取当前时间戳_c# long aa = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000 //2.时间戳->时间 C# DateTime b11 = GetTime("1483461862");//11位时间戳->时间 DateTime b13 = ConvertStringToDateTime("1483461862&

Shell日期时间和时间戳的转换

Gitlab的备份文件是以时间戳显示的,类似:1438624820_gitlab_backup.tar 为了更易于阅读,想把文件名转换成日期格式:2015-08-04_gitlab_backup.tar 所以查找了下Shell里时间转换的方法,记录如下备忘. Linux下时间转换的一些命令: date +%s   可以得到UNIX的时间戳; 用shell将日期时间与时间戳互转:       date -d "2015-08-04 00:00:00" +%s     输出:1438617

时间戳与时间相互转换(13位)(转)

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. 1 /// 获取时间戳 2 /// </summary> 3 /// <returns></returns> 4 public static string GetTimeStamp(System.DateTime time) 5 { 6 long ts = ConvertDateTimeToInt(time); 7 return ts.T

php+mysql中13位的时间戳

function getMillisecond() {    list($t1, $t2) = explode(' ', microtime());    // return $t2 . '.' .  ceil( ($t1 * 1000) );    return $t2 . ceil( ($t1 * 1000) );}echo getMillisecond(); 上面方法就能获得13位的时间戳,写入到mysql表中. 如果原来在表中的时间是日期格式的.就这样转换一下. 举例:CU是一张表.mt

用shell将时间字符串与时间戳互转

date的详细用户可以参考下面的 http://www.cnblogs.com/xd502djj/archive/2010/12/29/1919478.html date 的具体用法可以查看另外一篇博文 <shell date 命令详解>http://blog.csdn.net/runming918/article/details/7223520 date +%s   可以得到UNIX的时间戳;用shell将时间字符串与时间戳互转:      date -d "2010-10-18