How can I create a new instance of DateTime in specific time zone?

Viewed 5989

Given a specific TimeZoneInfo instance how can I create a new DateTime instance in the specified time zone? For example if I have:

var tz = TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time");
var date = new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Unspecified);
Console.WriteLine(TimeZoneInfo.ConvertTime(date, tz));

I am always getting 12/31/2016 7:00:00 PM regardless of what DateTimeKind I define (Utc, Local or Unspecified).

How can I declare a new DateTime that will be January 1st of 2017 at 0:00:00 in US Eastern Standard Time?

2 Answers
Related