Question: I need to convert time to "UTC+03:30 Time Zone" in my web application here is UTC date :

```
DateTime dt = DateTime.UtcNow;

```

Is there any function to convert UTC to my time zone or not ? I don't want to involve myself writing a new function in my application if there is a function in ASP.NET.

The application might be hosted in different server in the world and that's exactly why I have used UTC date.

I need a function to add 3:30 to the current UTC time.

Answer: 
Are you sure your time zone is *really* UTC +3:30, all the time, with no daylight savings? If so, you could create a [`DateTimeOffset`](http://msdn.microsoft.com/en-us/library/system.datetimeoffset.aspx) with the appropriate offset (3.5 hours). For example:

```
DateTimeOffset dtOffset = new DateTimeOffset(DateTime.UtcNow,
                                             TimeSpan.FromHours(3.5));

```

Of course that gives you a `DateTimeOffset` instead of a `DateTime`... are you able to use that?

A better solution is to use `TimeZoneInfo` - for example, you could get the right time zone and call 

```
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(utcDateTime, tzInfo);

```

... or you could use `TimeZoneInfo` but still get a `DateTimeOffset`:

```
DateTimeOffset dto = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tzInfo);

```

Personally I would recommend you use `DateTimeOffset` if you can, as the meaning of `DateTime` is somewhat ambiguous and hard to work with correctly.

.NET's date and time handling is a bit of a mess, unfortunately :( I have a project called [Noda Time](http://noda-time.googlecode.com) which should improve the state of affairs if we ever complete it, but it's far from production-ready at the moment.
this would let you convert UTC to any timezone

```
Shared Function FromUTC(ByVal d As Date, ByVal tz As String) As Date
 Return (TimeZoneInfo.ConvertTimeBySystemTimeZoneId(d, TimeZoneInfo.Utc.Id, tz))
end function

```

you're able to get the list of timezones using 

```
For Each timeZone As TimeZoneInfo In tzCollection
   Console.WriteLine("   {0}: {1}", timeZone.Id, timeZone.DisplayName)
Next

```