.NET PCL exception when converting time from UTC to specified TimeZone
I am developing a project in Xamarin Studio using C #. Its a .net PCL project and my profile is 78. My problem is that I cannot convert DateTime from UTC to the specified timezone. I am using below code to convert DateTime from UTC to specified local TimeZone.
DateTime dateTime = (TimeZoneInfo.ConvertTime (DateTime.SpecifyKind (DateTime.UtcNow, DateTimeKind.Utc), profile.TimeZone));
I am getting below exception
The Kind property of the dateTime parameter is DateTimeKind.Utc, but the sourceTimeZone parameter is not TimeZoneInfo.Utc.
no parameter to specify in PCL
. It only has 2 overloads with the options below.
ConvertTime (DateTime, TimeZoneInfo) and ConvertTime (DateTimeOffset, TimeZoneInfo)
TimeZoneInfo exists only to indicate the purpose of TimeZoneInfo.
It also has no methods
Please help me fix this.
source to share
To add a comment to Hans:
It's all by design. Time zone conversion requires a database operating system that keeps track of time zone rules around the world. Available on a desktop class computer that is not available on limited devices such as a phone. Without a database, you can only know about UTC and the timezone the device is configured for. You cannot use PCL if required, using a commercial web service so that conversion would be a workaround for you.
Check out Noda Time . It is a date / time library for .NET that has its own timezone data so it doesn't need to rely on the OS. It also supports PCL.
source to share