C#DateTime to String Issue

前端之家收集整理的这篇文章主要介绍了C#DateTime to String Issue前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我觉得这是我做过一千次的事情,所以不确定为什么现在这么困难.我创建了一个方法,根据用户的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);

猜你在找的Android相关文章