87 lines
3.1 KiB
C#
87 lines
3.1 KiB
C#
using System;
|
|
namespace ThinkingData.Analytics.Utils
|
|
{
|
|
public class TDCommonUtils
|
|
{
|
|
public static string FormatDate(DateTime dateTime, TimeZoneInfo timeZone)
|
|
{
|
|
bool success = true;
|
|
DateTime univDateTime = dateTime.ToUniversalTime();
|
|
TimeSpan timeSpan = new TimeSpan();
|
|
try
|
|
{
|
|
timeSpan = timeZone.BaseUtcOffset;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
success = false;
|
|
//if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("FormatDate - TimeSpan get failed : " + e.Message);
|
|
}
|
|
try
|
|
{
|
|
if (timeZone.IsDaylightSavingTime(dateTime))
|
|
{
|
|
TimeSpan timeSpan1 = TimeSpan.FromHours(1);
|
|
timeSpan = timeSpan.Add(timeSpan1);
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
success = false;
|
|
//if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("FormatDate: IsDaylightSavingTime get failed : " + e.Message);
|
|
}
|
|
if (success == false)
|
|
{
|
|
timeSpan = TimeZone.CurrentTimeZone.GetUtcOffset(dateTime);
|
|
}
|
|
try
|
|
{
|
|
DateTime dateNew = univDateTime + timeSpan;
|
|
return dateNew.ToString("yyyy-MM-dd HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
return univDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
|
|
public static string FormatDate(DateTime dateTime, TDTimeZone timeZone) {
|
|
DateTime univDateTime = dateTime.ToUniversalTime();
|
|
TimeSpan span;
|
|
switch (timeZone)
|
|
{
|
|
case TDTimeZone.Local:
|
|
span = TimeZoneInfo.Local.BaseUtcOffset;
|
|
break;
|
|
case TDTimeZone.UTC:
|
|
span = TimeSpan.Zero;
|
|
break;
|
|
case TDTimeZone.Asia_Shanghai:
|
|
span = TimeSpan.FromHours(8);
|
|
break;
|
|
case TDTimeZone.Asia_Tokyo:
|
|
span = TimeSpan.FromHours(9);
|
|
break;
|
|
case TDTimeZone.America_Los_Angeles:
|
|
span = TimeSpan.FromHours(-7);
|
|
break;
|
|
case TDTimeZone.America_New_York:
|
|
span = TimeSpan.FromHours(-4);
|
|
break;
|
|
default:
|
|
span = TimeSpan.Zero;
|
|
break;
|
|
}
|
|
try
|
|
{
|
|
DateTime dateNew = univDateTime + span;
|
|
return dateNew.ToString("yyyy-MM-dd HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
catch (Exception) {
|
|
}
|
|
return univDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
}
|
|
}
|
|
|