Come posso formattare un oggetto DateTime
su una stringa nel formato data/ora predefinito del dispositivo quando si esegue un progetto PCL Xamarin.Form e le destinazioni di deployment includono iOS, Android e Windows.Formato DateTime in Xamarin Forms to Device Formato stringa
Il DateTime.ToShortString()
non funziona secondo i requisiti MSDN secondo questo thread e questo bug.
Esiste una soluzione basata su moduli o è necessario ottenerla dai progetti specifici della piattaforma?
per Android, posso effettuare le seguenti operazioni dal progetto originario usando DI:
String format = Settings.System.GetString(this.context.ContentResolver
, Settings.System.DateFormat);
string shortDateString = dateTime.ToString(format);
o posso usare questa (la versione C# del codice qui sotto) troppo:
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
Se vuoi in this QUINTA domanda per capire più chiaramente il requisito (è solo per Android, lo voglio per tutte le piattaforme in quanto si tratta di una domanda Xamarin.Forms).
Poiché lo DatePicker
e TimePicker
in Xamarin Form mostra la data e l'ora nel formato del dispositivo, spero che ci sia un modo per ottenerlo nel PCL.
Inoltre v'è una classe Device
in PCL che ha informazioni come piattaforme, linguaggio, ecc
Probabilmente si vorrà considerare l'utilizzo del servizio di dipendenza se la formattazione è specifica del client. https://developer.xamarin.com/guides/xamarin-forms/dependency-service/introduction/ –
@AndresCastro - Grazie, ma sto cercando un'opzione da PCL, sì, so che potrebbe essere fatto tramite DI ottenerlo per ogni piattaforma. –
Gotcha, penserei che usare semplicemente dateTime.ToString ("d") funzionerebbe come dovrebbe applicare ToString nella cultura corrente. Io sinceramente non l'ho provato prima però. Potrebbe essere interessante vedere cosa succede quando cambi la cultura del tuo dispositivo. –