DateTime
オブジェクトをPCL Xamarin.Formsプロジェクトを実行しているときに、デバイスのデフォルトのdatetime形式の文字列にフォーマットするにはどうすればよいですか?フォーマットXamarinフォームのデバイスフォーマット文字列
このthreadおよびbugに従ってMSDN要件に従ってDateTime.ToShortString()
が機能しません。
フォームベースのソリューションはありますか、それともプラットフォーム固有のプロジェクトから取得する必要がありますか? Android用
、私はDIを使用してネイティブプロジェクトから、次の操作を行うことができます
String format = Settings.System.GetString(this.context.ContentResolver
, Settings.System.DateFormat);
string shortDateString = dateTime.ToString(format);
または私はあまりにも(下記のコードのC#バージョンを)これを使用することができます:
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
を調べてくださいthisこれは要件をより明確に理解するために質問されています(Androidの場合のみ、Xamarin.Formsの質問のようにすべてのプラットフォームで必要です)。
XamarinフォームのDatePicker
とTimePicker
には、デバイスフォーマットの日付と時刻が表示されているので、PCLで取得する方法があると思います。
はまた、私は、私は要件を実装するためにDIを使用していたすべてのPCLの実装を見つけることができなかったようなど
フォーマットがクライアント固有である場合は、依存関係サービスを使用することをお勧めします。 https://developer.xamarin.com/guides/xamarin-forms/dependency-service/introduction/ –
@AndresCastro - ありがとうございますが、私はPCLからオプションを探しています。はい、それはそれぞれのためにDIを使って行うことができますプラットフォーム。 –
Gotcha、私はdateTime.ToString( "d")を使用するだけで、現在の文化のToStringを適用する必要があると思うでしょう。私は正直なところ、それをテストしていない。デバイスカルチャを変更したときに何が起こるかを知ることは興味深いかもしれません。 –