Comment convertir DateTime dans certains fuseau horaire?

J'ai du mal à comprendre comment UTC œuvres.

Que j'ai à faire ce qui suit, mais je suis toujours confus si j'avais eu le bon résultat.

Objectifs:

  1. S'assurer que tous enregistré des dates dans la Base de données sont au format UTC
  2. Mise à jour DefaultTimezone est à Manille temps
  3. S'assurer que tous retournés dates sont à Manille Temps

Sorte que le code est:

public ConvertDate(DateTime? dateTime)
{
    if (dateTime != null)
    {
        Value = (DateTime)dateTime;
        TimeZone = GetFromConfig.DefaultTimeZone(); 
    }
}


public ConvertDate(DateTime? dateTime, int GMTTimeZone)
{
    if (dateTime != null)
    {
        Value = (DateTime)dateTime;
        TimeZone = GMTTimeZone;
    }
}


public int TimeZone
{
    get { return m_TimeZone; }
    set { m_TimeZone = value; }
}


DateTime m_Value;
public DateTime Value
{
    get { return m_Value; }
    set 
    { 
        m_Value = value;
        DateTime converted = m_Value.ToUniversalTime().ToLocalTime();
    }
}

Exemple d'utilisation:

DateTime SampleInputFromUser = new DateTime(2012, 1, 22);
ConvertDate newConversion = new ConvertDate(SampleInputFromUser, 21);
DateTime answer = newConversion.Value;

Maintenant, je suis confus pour 'Fuseau horaire'. Je ne sais pas comment l'utiliser pour obtenir les objectifs.

J'espère que vous comprenez ma question et avoir l'idée d'obtenir les objectifs de fait.

Modifier

Selon @raveturned réponse, j'obtiens ce code suivant:

***Ajout de ConvertDate méthode

TimeZoneInfo timeInfo = TimeZoneInfo.FindSystemTimeZoneById(GetFromConfig.ManilaTimeZoneKey());
ManilaTime = TimeZoneInfo.ConvertTime(dateTime.Value, TimeZoneInfo.Local, timeInfo).ToUniversalTime();

**Nouvelle Propriété

DateTime _ManilaTime;
public DateTime ManilaTime
{
    get { return _ManilaTime; }
    set { _ManilaTime = value; }
}
InformationsquelleAutor fiberOptics | 2012-03-26