public static void Main()
var timezoneWinId = "Eastern Standard Time";
var dateValue = "2020-07-02";
var dateFormat = "yyyy-MM-ddTHH:mm:ss";
var result = UpdateParameterDateWithOffset(dateValue, timezoneIanaId,timezoneWinId,dateFormat);
var dateValue1 = "2020-07-02T01:14:41.843-04:00";
var dateFormat1 = "yyyy-MM-dd HH:mm";
var result1 = UpdateDateWithTimeZone(dateValue1, timezoneIanaId,timezoneWinId,dateFormat1);
Console.WriteLine(result);
Console.WriteLine(result1);
public static string UpdateParameterDateWithOffset(object dateValue, string timezoneIanaId, string timezoneWinId, string dateFormat)
if (dateValue == null) return "";
TimeZoneInfo timeZoneInfo;
bool success = DateTime.TryParse((String)dateValue, out dateOut);
dateOut = (DateTime)dateValue;
timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timezoneIanaId);
catch (TimeZoneNotFoundException e)
timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timezoneWinId);
var offSet = timeZoneInfo.GetUtcOffset(DateTime.UtcNow);
var newDate = new DateTimeOffset(dateOut.Year, dateOut.Month, dateOut.Day, dateOut.Hour, dateOut.Minute, dateOut.Second, offSet);
var startDateData = newDate.ToUniversalTime().ToString(dateFormat);
public static string UpdateDateWithTimeZone(object dateValue, string timezoneIanaId, string timezoneWinId, string dateFormat)
if (dateValue == null) return "";
TimeZoneInfo timeZoneInfo;
bool success = DateTime.TryParse((String)dateValue, out dateOut);
dateOut = (DateTime)dateValue;
timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timezoneIanaId);
catch(TimeZoneNotFoundException e)
timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timezoneWinId);
return TimeZoneInfo.ConvertTime(dateOut, timeZoneInfo).ToString(dateFormat);