Wie kann ich ein DateTime
Objekt in einem String im standardmäßigen Datetime-Format des Geräts formatieren, wenn ein PCL Xamarin.Forms-Projekt ausgeführt wird und meine Implementierungsziele iOS, Android und Windows umfassen.Formatieren von DateTime in Xamarin Forms in Device Format Zeichenfolge
Die DateTime.ToShortString()
funktioniert nicht entsprechend der MSDN-Anforderung gemäß dieser thread und dieser bug.
Gibt es irgendeine formularbasierte Lösung oder muss ich sie von plattformspezifischen Projekten bekommen?
Für Android, kann ich folgende von Native Projekt mit DI tun:
String format = Settings.System.GetString(this.context.ContentResolver
, Settings.System.DateFormat);
string shortDateString = dateTime.ToString(format);
OR Ich kann diese verwenden (die C# Version des Code unten):
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
Blick in this SO Frage, um die Anforderung klarer zu verstehen (es ist nur für Android, ich will es für alle Plattformen, da dies eine Xamarin.Forms Frage ist).
Da die DatePicker
und TimePicker
in Xamarin Forms das Datum und die Uhrzeit im Geräteformat zeigen, hoffe ich, dass es eine Möglichkeit geben würde, es in der PCL zu bekommen.
Auch gibt es eine Device
Klasse in PCL, die Informationen wie Plattformen hat, Idiom usw.
Wahrscheinlich möchten Sie den Abhängigkeitsdienst verwenden, wenn die Formatierung mandantenspezifisch ist. https://developer.xamarin.com/guides/xamarin-forms/dependency-service/introduction/ –
@AndresCastro - Danke, aber ich bin auf der Suche nach einer Option von PCL, ja, ich weiß, es könnte getan werden via DI bekommen es für jeden Plattform. –
Gotcha, ich würde denken, dass nur mit dateTime.ToString ("d") arbeiten würde, wie es die ToString in der aktuellen Kultur anwenden sollte. Ich habe es ehrlich gesagt noch nicht getestet. Es könnte interessant sein zu sehen, was passiert, wenn Sie Ihre Gerätekultur ändern. –