【时间戳】

 获取本地时间戳

/// 
	/// 获取本地的Unix时间戳
	/// 
	/// 
	public static int GetLocalTimeStamp()
	{
		DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
		DateTime dtNow = DateTime.Parse(DateTime.Now.ToString());
		TimeSpan toNow = dtNow.Subtract(dtStart);
		string timeStamp = toNow.Ticks.ToString();
		timeStamp = timeStamp.Substring(0, timeStamp.Length - 7);
		int unixtime = 0;
		if (int.TryParse(timeStamp, out unixtime))
		{
			return unixtime;
		}
		return unixtime;
	}


1. 通过时间戳 - 获取 2016-8-12 10:07:25 时间格式

/// 
	/// 返回  2016-8-12 10:07:25
	/// 
	/// 时间戳
	public static string GetDataTime(long time)
	{
		System.DateTime dtDateTime = new System.DateTime(1970, 1, 1);
		dtDateTime = dtDateTime.AddSeconds(time).ToLocalTime();
		return dtDateTime.ToString("yyyy-M-d HH:mm:ss");
	}

2. 通过时间戳 - 获取 (几分钟前,几小时前 等 聊天使用 时间格式

// 通过时间戳 - 获取时间data
	public static DateTime UnixTimeStampToDateTime(long unixTimeStamp)
	{
		System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
		dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
		return dtDateTime;
	}

	///   
	/// 获取时间差desc   根据时间差获取描述,比如刚刚,1分钟前,5分钟前
	///   
	public static string GetChatTimeDesBySpan(long num)  
	{  
		DateTime dt = ClientTools.UnixTimeStampToDateTime(num);  
		TimeSpan span = DateTime.Now - dt;  
		if (span.TotalDays > 60)  
			return dt.ToLongDateString();  
		else if (span.TotalDays > 30)  
			return StringManager.GetInstance().GetValue("txt_yueqian");//一个月前  
		else if (span.TotalDays > 14)  
			return StringManager.GetInstance().GetValue("txt_bangeyueqian"); //半个月前  
		else if (span.TotalDays > 7)  
			return StringManager.GetInstance().GetValue("txt_yuzhouqian"); // 1周前  
		else if (span.TotalDays > 1)  
			return string.Format(StringManager.GetInstance().GetValue("txt_jitianqian"),(int)Math.Floor(span.TotalDays));  //{0}天前
		else if (span.TotalHours > 1)  
			return string.Format(StringManager.GetInstance().GetValue("txt_xiaoshiqian"),(int)Math.Floor(span.TotalHours));  //{0}小时前
		else if (span.TotalMinutes > 1)  
			return string.Format(StringManager.GetInstance().GetValue("txt_fenzhongqian"),(int)Math.Floor(span.TotalMinutes)); //{0}分钟前 
		else if (span.TotalSeconds > 1)  
			return string.Format(StringManager.GetInstance().GetValue("txt_ganggang"));  //刚刚
		else  
			return string.Format(StringManager.GetInstance().GetValue("txt_ganggang"));  //刚刚
	}

3. 通过时间戳 - 获取 (和现在的时间戳的差值,进行cd显示(01:00:00) 意思是 时间戳间隔是一个小时

 这个差值还有一个获取方法! 俩个时间差 减法 就是差值

int endTime = pb.value;// 倒计时结束时间
int currentServerTime = ClientTools.GetLocalTimeStamp();//当前时间

int 时间差 = endTime - currentServerTime  ;

if (时间差 <= 0)

{

//  时间戳小于等于0,直接返回 "00:00:00"

return  “"00:00:00"”;

}

GetTime(时间差);

static StringBuilder _TimeStrBuilder = new StringBuilder();

	void GetTime(int time)
	{
		TimeSpan timeSpan = TimeSpan.FromSeconds(time);// 时间差
		string timeStr = GetTimeSpanStr(timeSpan);// 返回 一个cd   01:00:00 比如这个,意思是间隔一个小时
 	}
	public static string GetTimeSpanStr(TimeSpan timeSpan)
	{

		if (_TimeStrBuilder == null)
		{
			_TimeStrBuilder = new StringBuilder();
		}
		_TimeStrBuilder.Remove(0, _TimeStrBuilder.Length);
		int tmp = (int)(timeSpan.TotalHours);
		tmp = tmp >= 0 ? tmp : 0;
		if (tmp < 10)
		{
			_TimeStrBuilder.Append("0" + tmp);
		}
		else
		{
			_TimeStrBuilder.Append(tmp);
		}
		if (timeSpan.Minutes < 10)
		{
			tmp = timeSpan.Minutes >= 0 ? timeSpan.Minutes : 0;
			_TimeStrBuilder.Append(":0" + tmp);
		}
		else
		{
			tmp = timeSpan.Minutes >= 0 ? timeSpan.Minutes : 0;
			_TimeStrBuilder.Append(":" + tmp);
		}
		if (timeSpan.Seconds < 10)
		{
			tmp = timeSpan.Seconds >= 0 ? timeSpan.Seconds : 0;
			_TimeStrBuilder.Append(":0" + tmp);

		}
		else
		{
			tmp = timeSpan.Seconds >= 0 ? timeSpan.Seconds : 0;
			_TimeStrBuilder.Append(":" + timeSpan.Seconds);
		}
		return _TimeStrBuilder.ToString();
	}


你可能感兴趣的:(脚本相关)