我觉得这是我做过一千次的事情,所以不确定为什么现在这么困难.我创建了一个方法,根据用户的UTC偏移量简单地返回用户的今天日期.但是它不是返回类似日期的字符串,而是返回这个垃圾
"䙭/䙭/Ἰ뻱䙭"
这是代码.
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")
最佳答案我假设您的设备设置为中国/日本/韩国文化.如果您总想返回美国日期,请使用:return Now.ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);
编辑:鉴于你的其他评论,我开始怀疑这可能是由腐败或MonoDroID实现中的错误引起的.您可以尝试通过手动构建日期来解决它(尽管这无法解决您的问题的原因):
return string.Format("{0:00}/{1:00}/{2:0000}",Now.Month,Now.Day,Now.Year);
总结 以上是内存溢出为你收集整理的C#DateTime to String Issue全部内容,希望文章能够帮你解决C#DateTime to String Issue所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)