title: Xamarin.Android JSON.Net serilization fails on 4.2.2 device only TimeZoneNotFound exception
body: <p>I am using JSON.Net to serialize a DTO and I am getting the following exception on the physical device. THis works on all other devices we have tested on, but is failing on the <code>Samsung Galaxy Tab 3lite SM-T110</code> running version 4.2.2.</p>
  
  <p>I was having <a href="https://stackoverflow.com/questions/18451333/nullreferenceexception-json-net-xamarin-android-android-4-3">this issue</a> but when I upgraded to Xamarin 3.0, it turned into this below:</p>
  
  <pre><code>06-03 21:17:41.687 E/mono-rt (22071): [ERROR] FATAL UNHANDLED EXCEPTION: System.TimeZoneNotFoundException: Exception of type 'System.TimeZoneNotFoundException' was thrown.
  06-03 21:17:41.687 E/mono-rt (22071):   at System.TimeZoneInfo.get_Local () [0x00000] in &lt;filename unknown&gt;:0 
  06-03 21:17:41.687 E/mono-rt (22071):   at Newtonsoft.Json.Utilities.DateTimeUtils.GetUtcOffset (DateTime d) [0x00000] in &lt;filename unknown&gt;:0 
  06-03 21:17:41.687 E/mono-rt (22071):   at Newtonsoft.Json.Utilities.DateTimeUtils.WriteDateTimeString (System.Char[] chars, Int32 start, DateTime value, Nullable`1 offset, DateTimeKind kind, DateFormatHandling format) [0x00000] in &lt;filename unknown&gt;:0 
  06-03 21:17:41.687 E/mono-rt (22071):   at Newtonsoft.Json.JsonTextWriter.WriteValue (DateTime value) [0x00000] in &lt;filename unknown&gt;:0 
  06-03 21:17:41.687 E/mono-rt (22071):   at Newtonsoft.Json.JsonWriter.WriteValue (Newtonsoft.Json.JsonWriter writer, PrimitiveTypeCode typeCode, System.Object value) [0x00000] in &lt;filename unknown&gt;:0 
  06-03 21:17:41.687 E/mono-rt (22071):   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializePrimitive (Newtonsoft.Json.JsonWriter writer, System.Object value, Newtonsoft.Json.Serialization.JsonPrimitiveContract contract, Newtonsoft.Json.Serialization.
  06-03 21:17:41.695 I/mono-stdout(22071): Executing Command: UpdateRegistration
  The program 'Mono' has exited with code 0 (0x0).
  </code></pre>
  
  <p><strong>EDIT</strong> This is the DTO that I am trying to serialize. You can see when the constructor gets called, it sets it to <code>DateTime.Now</code>. Shouldnt this just assume the local timezone?</p>
  
  <pre><code>  public class RecordTargetFrequency : BaseCommand, ICommand {
          public Guid TargetId { get; private set; }
          public Guid? LocationId { get; private set; }
          public Guid TherapistId { get; private set; }
          public bool? Increase { get; private set; }
          public DateTime TimeStamp { get; private set; }
  
          public RecordTargetFrequency(Guid targetId, Guid? locationId, Guid therapistId, bool? increase) {
              TimeStamp = DateTime.Now;
              TargetId = targetId;
              LocationId = locationId;
              TherapistId = therapistId;
              Increase = increase;
          }
  
          public void Validate() {
              ValidateGuid(TargetId);
              ValidateGuid(TherapistId);
          }
      }
  </code></pre>
  
  <p>I am then serializing it with this line:</p>
  
  <pre><code>JsonConvert.SerializeObject(executedCommand);
  </code></pre>