Czuję, że to jest coś, co zrobiłem tysiąc razy, więc nie jestem pewien, dlaczego teraz jest tak trudno. Stworzyłem metodę, która po prostu zwraca dzisiejszą datę dla użytkownika na podstawie jego przesunięcia UTC. Ale zamiast wrócić ciąg przypominający datę, to zwrócą śmieciC# DateTime to String Issue
"䙭/䙭/Ἰ뻱䙭"
Oto kod.
public string getToday(Context context)
{
var settings = PreferenceManager.GetDefaultSharedPreferences(context);
var offset = settings.GetInt("offset", -5);
var now = DateTime.UtcNow.AddHours(offset);
return now.ToShortDateString();
}
Kiedy wchodzę do kodu za pomocą punktu przerwania, offset i teraz oba wydają się prawidłowe. zawiera teraz prawidłowe części daty, które wydają się dokładne. Coś związanego z konwersją na ciąg wydaje się być strasznie złe. Wypróbowano również:
return now.ToString("MM/dd/yyyy");
Ten sam wynik. Dziwną częścią jest poniższy kod w innej aktywności działa bez problemu.
var offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours;
var now = DateTime.UtcNow.AddHours(offset);
now.ToString("MM-dd-yyyy")
Co kultura jest ten kod działa pod? – Oded
@ Pozwoliłbym powiedzieć, że nie po angielsku! – Zenexer
@Zenexer - Powiedziałbym, że to jest dane. Mój komentarz był bardziej wskaźnikiem do PO. – Oded