jme*_*ase 5 c# android xamarin.android
我觉得这是我做过一千次的事情,所以不确定为什么现在这么困难.我创建了一个方法,根据用户的UTC偏移量简单地返回用户的今天日期.但是它不是返回类似日期的字符串,而是返回这个垃圾
"?/??/????"
Run Code Online (Sandbox Code Playgroud)
这是代码.
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();
}
Run Code Online (Sandbox Code Playgroud)
当我使用断点进入代码时,偏移现在看起来都是正确的.现在包含所有看似准确的有效日期部分.关于将现在转换为字符串的事情似乎非常错误.还尝试过:
return now.ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)
结果相同.奇怪的部分是下面的代码在另一个活动工作没有问题
var offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours;
var now = DateTime.UtcNow.AddHours(offset);
now.ToString("MM-dd-yyyy")
Run Code Online (Sandbox Code Playgroud)
我假设您的设备设置为中文/日文/韩文文化。如果您总是想返回美国日期,请使用:
\n\nreturn now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:鉴于您的其余评论,我\xe2\x80\x99m 开始怀疑这可能是由损坏或 MonoDroid 实现中的错误引起的。您可以尝试通过手动构造日期来解决这个问题(尽管这确实不能解决问题的原因):
\n\nreturn string.Format("{0:00}/{1:00}/{2:0000}", now.Month, now.Day, now.Year);\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1563 次 |
| 最近记录: |