Ich finde es schwer zu verstehen, wie UTC funktioniert.Wie konvertiert man DateTime in bestimmte Zeitzone?
Ich habe folgendes zu tun, aber ich bin immer noch verwirrt, wenn ich das richtige Ergebnis bekommen würde.
Ziele:
- alle Stellen Sie sicher gespeichert Daten in der Datenbank in UTC-Format
- Sicherstellen, dass alle zurück Termine sind in Manila Zeit
So ist die
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();
}
}
Verwendungsbeispiel:
DateTime SampleInputFromUser = new DateTime(2012, 1, 22);
ConvertDate newConversion = new ConvertDate(SampleInputFromUser, 21);
DateTime answer = newConversion.Value;
Jetzt verwirrt für 'Time-Zone' ich. Ich weiß nicht, wie man es benutzt, um die Ziele zu erreichen.
Hoffe, dass Sie meine Frage verstehen und haben die Idee, die Ziele zu erledigen.
bearbeiten
Nach @raveturned Antwort, habe ich diesen Code ein:
*** Hinzugefügt in ConvertDate Methode
TimeZoneInfo timeInfo = TimeZoneInfo.FindSystemTimeZoneById(GetFromConfig.ManilaTimeZoneKey());
ManilaTime = TimeZoneInfo.ConvertTime(dateTime.Value, TimeZoneInfo.Local, timeInfo).ToUniversalTime();
** New Property
DateTime _ManilaTime;
public DateTime ManilaTime
{
get { return _ManilaTime; }
set { _ManilaTime = value; }
}
Mögliche Duplikat http://stackoverflow.com/questions/246498/creating-a-datetime-in-a-specific-time-zone-in-c-sharp-fx-3-5 – Dotnet