これは私が何千回もやったような気がするので、なぜ今は難しいのか分かりません。私はUTCのオフセットに基づいてユーザーの今日の日付を単に返すメソッドを作成しました。しかし、日付に似た文字列を返す代わりに、このゴミを返していますC#DateTime to String Issue
"䙭/䙭/Ἰ뻱䙭"
ここにコードがあります。
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();
}
ブレークポイントを使用してコードにステップインする際に、オフセットが正しく表示されるようになりました。有効な日付部分がすべて正確に表示されるようになりました。文字列に変換する何かがひどく間違っているようです。また試しました:
return now.ToString("MM/dd/yyyy");
同じ結果です。奇妙な部分は別のアクティビティの下のコードです。問題なしで動作します。
var offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours;
var now = DateTime.UtcNow.AddHours(offset);
now.ToString("MM-dd-yyyy")
? – Oded
@Oded私は英語ではないでしょう! – Zenexer
@Zenexer - 私はそれが与えられていると思います。私のコメントは、OPへのポインタの多くでした。 – Oded