Xamarin.Forms DateTime.Now() 日期与当前日期不匹配

Posted

技术标签:

【中文标题】Xamarin.Forms DateTime.Now() 日期与当前日期不匹配【英文标题】:Xamarin.Forms DateTime.Now() date does not match current date 【发布时间】:2021-12-22 22:18:22 【问题描述】:

我有一个用户不断收到错误,他的 DateTime.Now() 时间戳比当前系统 DateTime 晚一两天。此应用程序在大约 80 台其他设备上正常运行。

重新启动应用程序似乎可以解决问题。有没有人遇到过这个问题?

我正在从静态帮助类访问 System.DateTime,这里是获取当前日期和时间的变量:

    public static string DateFormat = "yyyy-MM-dd HH':'mm':'ss";
    public static string ShortDateFormat = "yyyy-MM-dd HH':'mm";
    public static string DateOnlyFormat = "yyyy-MM-dd";
    public static string Today = DateTime.Now.ToString(DateFormat);
    public static string TodayDate = DateTime.Now.ToString(DateOnlyFormat);
    public static string CurrentTime = DateTime.Now.TimeOfDay.ToString();

【问题讨论】:

会不会是应用程序没有重新启动并且“今天”的日期时间永远不会更新?我的意思是它只会在第一次获得一个值,然后它不会更新。如果是这种情况,您可能想使用类似public static string TodayDate get => DateTime.Now.... 【参考方案1】:

你的字段(!)

public static string Today = DateTime.Now.ToString(DateFormat);

被初始化一次,当程序启动或第一次使用这个定义的类时。

您可能想改用属性:

public static string Today => DateTime.Now.ToString(DateFormat);

每次请求时都会返回一个新字符串。

【讨论】:

谢谢,我暂时将其标记为答案。我想可能是这样的。 如果您希望当前的 时间 显示正确的值(或在午夜后正确的日期),那么您将需要一些计时器来连续(可能每分钟一次)够了)更新那个时间(和/或日期)的显示 谢谢汉斯,幸运的是,这更像是工作时间的时间戳。

以上是关于Xamarin.Forms DateTime.Now() 日期与当前日期不匹配的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 手势密码实现

Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]

如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色

Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源

Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception

如果调用方未使用 Xamarin.Forms,Xamarin 依赖项服务能否正常工作?