最近项目中用到获取时间的功能,现在把用到的分享一下。

1. 时间戳转为+00:00时区 日期格式 yyyy/MM/dd HH:mm:ss
/// <summary>
///  时间戳转为+00:00时区 日期格式  yyyy/MM/dd HH:mm:ss
/// </summary>
/// <param name="timeStamp"></param>
/// <returns></returns>
public static DateTime GetUtcDateTime(string timeStamp)  
{  
    long lTime = long.Parse(timeStamp);
    return DateTimeOffset.FromUnixTimeSeconds(lTime).DateTime;    
} 
2. 时间戳转为本地日期格式 yyyy/MM/dd HH:mm:ss
/// <summary>
///  时间戳转为本地日期格式 yyyy/MM/dd HH:mm:ss
/// </summary>
/// <param name="timeStamp"></param>
/// <returns></returns>
public static DateTime GetDateTime(string timeStamp)  
{  
   long lTime = long.Parse(timeStamp);
   return DateTimeOffset.FromUnixTimeSeconds(lTime).LocalDateTime;    
}  
3. 获取现在时间戳,秒
/// <summary>
/// 获取现在时间戳,秒
/// </summary>
/// <returns></returns>
public static string GetTimeStamp()
{
   return DateTimeOffset.Now.ToUnixTimeSeconds().ToString();       
}
4. 获取现在时间戳,毫秒
/// <summary>
/// 获取现在时间戳,毫秒
/// </summary>
/// <returns></returns>
public static string GetMilliTimeStamp()
{
   return DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
}  
5. 日期转时间戳 , 精确到秒
/// <summary>
/// 日期转时间戳 , 精确到秒
/// </summary>
/// <returns></returns>
public static string ToSecondsTimeStamp(this DateTime dateTime)
{
    return ((dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString();
}
6. 日期转时间戳 , 精确到毫秒
/// <summary>
/// 日期转时间戳 , 精确到毫秒
/// </summary>
/// <returns></returns>
public static string ToMillisecondsTimeStamp(this DateTime dateTime)
{
    return ((dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000).ToString();
}
7. 计算一个时间戳与当前时间的间隔
/// <summary>
/// 计算一个时间戳与当前时间的间隔
/// </summary>
///<param name="timeStamp"></param>
/// <returns></returns>
public static TimeSpan GetTimeSpan(string timeStamp)
{
    long lTime = long.Parse(timeStamp);
    var DateTimeUnix = DateTimeOffset.FromUnixTimeSeconds(lTime);
    //计算两个时间间隔
    TimeSpan timeSpan = new TimeSpan(DateTimeOffset.UtcNow.Ticks - DateTimeUnix.Ticks);
    return timeSpan;
}    
8. 计算两个时间戳的间隔
/// <summary>
/// 计算两个时间戳的间隔
/// </summary>
///<param name="timeStamp1"></param>
///<param name="timeStamp2"></param>
/// <returns></returns>
public static TimeSpan GetTwoTimeSpan(string timeStamp1, string timeStamp2)
{
   //获取时间戳,并将其转换为DateTimeOffset
   //var UninTimeStamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
   long lTime1 = long.Parse(timeStamp1);            
   long lTime2 = long.Parse(timeStamp2);
   var DateTimeUnix1 = DateTimeOffset.FromUnixTimeSeconds(lTime1);
   var DateTimeUnix2 = DateTimeOffset.FromUnixTimeSeconds(lTime2);
   //计算两个时间间隔
   TimeSpan timeSpan = new TimeSpan(DateTimeUnix2.Ticks - DateTimeUnix1.Ticks);
   return timeSpan;
} 

完毕。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐