75 lines
2.5 KiB
C#
75 lines
2.5 KiB
C#
|
|
using System.Collections;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using UnityEngine;
|
|||
|
|
using System;
|
|||
|
|
|
|||
|
|
public class TimeTools
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// DateTimeתʱ<D7AA><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="targetDateTime">DateTime</param>
|
|||
|
|
/// <returns>ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룩</returns>
|
|||
|
|
public static long ConvertToTimeStamp(DateTime targetDateTime)
|
|||
|
|
{
|
|||
|
|
return (targetDateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// ʱ<><CAB1><EFBFBD><EFBFBD>תDateTime
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="timeStamp">ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룩</param>
|
|||
|
|
/// <returns>DateTime</returns>
|
|||
|
|
public static DateTime GetDateTimeFromTimeStamp(long timeStamp)
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ǰʱ<C7B0><CAB1><EFBFBD>Ŀ<EFBFBD>ʼʱ<CABC><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
DateTime startDateTime = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1, 0, 0, 0), TimeZoneInfo.Local);
|
|||
|
|
long targetTimeStamp = ((long)timeStamp * 10000000);
|
|||
|
|
TimeSpan targetTS = new TimeSpan(targetTimeStamp);
|
|||
|
|
DateTime targetDateTime = startDateTime.Add(targetTS);
|
|||
|
|
return targetDateTime;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//һ<><D2BB><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
private const int CN_ONE_DAY_SECONDS = 24 * 60 * 60;
|
|||
|
|
//һСʱ<D0A1>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
private const int CN_ONE_HOUR_SECONDS = 60 * 60;
|
|||
|
|
//һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
private const int CN_ONE_MIN_SECONDS = 60;
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="totalSeconds"><3E>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static string ConvertSecToDHMS(int totalSeconds)
|
|||
|
|
{
|
|||
|
|
int days = totalSeconds / CN_ONE_DAY_SECONDS;
|
|||
|
|
int hours = totalSeconds % CN_ONE_DAY_SECONDS / CN_ONE_HOUR_SECONDS;
|
|||
|
|
int minutes = totalSeconds % CN_ONE_HOUR_SECONDS / CN_ONE_MIN_SECONDS;
|
|||
|
|
int seconds = totalSeconds % CN_ONE_HOUR_SECONDS % CN_ONE_MIN_SECONDS;
|
|||
|
|
return string.Format("{0}<7D>죺{1}ʱ<><CAB1>{2}<7D>֣<EFBFBD>{3}<7D>룺", days, hours, minutes, seconds);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>N<EFBFBD><4E><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF>ˢ<EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD>ҵ<EFBFBD>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public static long GetNextDayZeroTimeStamp(int day)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>0ʱ0<CAB1><30>0<EFBFBD><30>
|
|||
|
|
DateTime todayMidnight = DateTime.Now.Date;
|
|||
|
|
//<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>0ʱ0<CAB1><30>0<EFBFBD><30>
|
|||
|
|
DateTime nextDayMidnight = todayMidnight.AddDays(day);
|
|||
|
|
return ConvertToTimeStamp(nextDayMidnight);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><>ǰ<EFBFBD><C7B0>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public static long TimeStampNow
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|