July 2010

Convert DateTime into Specific TimeZone wise with DayLightSavingTime Changes

DateTime date1 = Convert.ToDateTime(“15-03-2010 3:30:00 AM”); //start day of daylighttime
//DateTime date1 = Convert.ToDateTime(“07-11-2010 3:30:00 AM”);
//DateTime date1 = Convert.ToDateTime(“08-11-2010 3:30:00 AM”); // end day of daylighttime

//set local timezone
TimeZoneInfo sourceTimeZone = TimeZoneInfo.Local;

//get system timezones list
System.Collections.ObjectModel.ReadOnlyCollection timeZone = TimeZoneInfo.GetSystemTimeZones();

List tz = timeZone.ToList();

//get event time zone standard name
epp2ClientPL.EventConfigurationProperties result = (epp2ClientPL.EventConfigurationProperties)HttpContext.Current.Session[“EventConfiguration”];
string strZone = tz.AsEnumerable().Where(u => u.DisplayName.Contains(result.EventTitle.Substring(12))).SingleOrDefault().StandardName.ToString();

//set event time zone
TimeZoneInfo destinationTimeZone = TimeZoneInfo.FindSystemTimeZoneById(strZone.ToString());

//convert datetime to event time zone wise
TimeZoneInfo.ConvertTime(date1, destinationTimeZone).ToString(“dd-MM-yyyy hh:mm tt”);

return date1;

Datatable.Copy() & DataTable.Clone() ???

DataTable dtCopy = table.Copy();

it will create “dtCopy” datatable with the records from “table”,

DataTable dtClone = table.Clone();

it will create “dtClone” datatable without any records. it only copy structure of “table” datatable.

DataTable dtCopy = dataViewTable.ToTable().copy();

it will create “dtCopy” datatablw with records only contains in DataView.

TimeZone : Get the date and time as per time zone

//Get the Collection of System’s Time Zones.
System.Collections.ObjectModel.ReadOnlyCollection timeZone = TimeZoneInfo.GetSystemTimeZones();
//Convert time zone collection to LIST
List tz = timeZone.ToList();

string strZone=””;
try
{
strZone = tz.AsEnumerable().Where(u => u.DisplayName == “(UTC+01:00) West Central Africa”).SingleOrDefault().StandardName.ToString();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}

TimeZoneInfo timeZone1 = TimeZoneInfo.Local;
TimeZoneInfo timeZone2 = TimeZoneInfo.FindSystemTimeZoneById(strZone.ToString());

Console.WriteLine(“================= Time Zone =============”);
Console.WriteLine(timeZone1.DisplayName);
Console.WriteLine(timeZone2.DisplayName);
DateTime dtNow = DateTime.Now;
DateTime dtOperationDate = DateTime.Now.AddHours(-1);
Console.WriteLine(“========================================”);

Console.WriteLine(“Local DateTime = ” + dtNow);
Console.WriteLine(“Local Operation Date = ” + dtOperationDate);

try
{
DateTime convertDate = TimeZoneInfo.ConvertTime(dtNow, timeZone1, timeZone2);
DateTime convertOperationDate = TimeZoneInfo.ConvertTime(dtOperationDate, timeZone1, timeZone2);
Console.WriteLine(“Converted DateTime = ” + convertDate.ToString());
Console.WriteLine(“Converted Operation Date = ” + convertOperationDate.ToString());

Console.WriteLine(“Subracted date time = ” + convertDate.Subtract(convertOperationDate).Hours
+ “:” + convertDate.Subtract(convertOperationDate).Minutes + ” hrs ago”);
}
catch(Exception ex)
{
Console.WriteLine( ex.Message.ToString());
}
}
}
}

For More information see following links:

http://msdn.microsoft.com/en-us/library/system.timezoneinfo.local.aspx

http://msdn.microsoft.com/en-us/library/8z6watww.aspx