1、缘由
以前使用的方法过时了,所以整理了一个新的。
2、代码
using System;
using UnityEngine;
/// <summary>
/// 时间级别
/// </summary>
public enum TimeLevel
{
Seconds,
Milliseconds
}
public static class TimeStampExtension
{
/// <summary>
/// 时间转为时间戳
/// </summary>
/// <param name="dateTime">要转换的时间</param>
/// // <param name="timeLevel">时间级别</param>
/// <returns>时间戳</returns>
public static long ToTimeStamp(this DateTime dateTime, TimeLevel timeLevel)
{
DateTimeOffset dateTimeOffset = dateTime;
return ToTimeStamp(dateTimeOffset, timeLevel);
}
/// <summary>
/// 时间转为时间戳
/// </summary>
/// <param name="dateTimeOffset">要转换的时间</param>
/// // <param name="timeLevel">时间级别</param>
/// <returns>时间戳</returns>
public static long ToTimeStamp(this DateTimeOffset dateTimeOffset, TimeLevel timeLevel)
{
long time = default;
switch (timeLevel)
{
case TimeLevel.Seconds:
time = dateTimeOffset.ToUnixTimeSeconds();
break;
case TimeLevel.Milliseconds:
time = dateTimeOffset.ToUnixTimeMilliseconds();
break;
}
return time;
}
/// <summary>
/// 时间戳转时间
/// </summary>
/// <param name="timeStamp">时间戳</param>
/// <returns>DateTime</returns>
public static DateTime ToDateTime(this long timeStamp, out bool result)
{
int lengh = timeStamp.ToString().Length;
return timeStamp.ToDateTime(lengh, out result);
}
/// <summary>
/// 时间戳转时间
/// </summary>
/// <param name="timeStamp">时间戳</param>
/// <returns>DateTime</returns>
public static DateTime ToDateTime(this string timeStamp, out bool result)
{
return long.Parse(timeStamp).ToDateTime(timeStamp.Length, out result);
}
/// <summary>
/// 时间戳转时间
/// </summary>
/// <param name="timeStamp">时间戳</param>
/// <param name="lengh">长度</param>
/// <returns>DateTime</returns>
private static DateTime ToDateTime(this long timeStamp, int lengh, out bool result)
{
result = true;
DateTime dateTime = DateTimeOffset.FromUnixTimeMilliseconds(timeStamp).LocalDateTime;
switch (lengh)
{
case 10:
return dateTime;
case 13:
return dateTime;
default:
result = false;
Debug.LogError("时间戳格式错误!");
return default;
}
}
}
时间戳处理升级:新方法实现秒级和毫秒级转换
本文介绍了一种更新的代码实现,提供将DateTime转换为不同时间级别的Unix时间戳(秒和毫秒),以及从时间戳反解析的功能,提升时间处理效率。
1581

被折叠的 条评论
为什么被折叠?



