【问题标题】:Datetime when assigned "dd/MM/yyyy" data but it keep store as "MM/dd/yyyy"分配“dd/MM/yyyy”数据时的日期时间,但它保存为“MM/dd/yyyy”
【发布时间】:2021-12-17 16:24:56
【问题描述】:

我在分配 DateTime 对象时遇到问题让我们说:- 日期时间对象 1 =“2021 年 3 月 11 日”; // 2021 年 11 月 3 日到另一个 DateTime 对象 日期时间 object2 = object1;

然后 object2 将自动变为“11/03/2021”。 我努力创建了一个新的 DateTime 对象,结果仍然相似。 任何帮助将不胜感激。

【问题讨论】:

  • A DateTime,在内部,只是从 01/01/0001 开始的午夜开始计算的 100ns 间隔。您观察到的任何格式都是在您将其转换为字符串 时发生的。在内部它没有格式信息,就像我说的,它只是一个计数。
  • 供您参考,Datetime 是一个结构(值类型)。它克隆每个分配。 stackoverflow.com/questions/4265399/…user.CheckinDt = logusr.CheckinDt //clone value
  • 你可以试试:user.CheckinDt.ToString("dd/MM/yyyy", DateTimeFormatInfo.InvariantInfo)
  • @Tohm .. 我的 newdt 中的值是正确的。这是我存储在 sqlite 中的内容。但是,当分配给 user.CheckinDt 滴答声时,它会看到不同的值。我通读了固定,但我是否克隆到我的 user.CheckinDt ?因为我正在分配 user.CheckinDt = new DateTime(Year,Month,Day) ,可以建议在那里改变什么吗?
  • 请不要将代码或错误作为图片发布。请张贴minimal reproducible example 说明问题

标签: c# forms datetime xamarin


【解决方案1】:

首先:DateTime object1 = "03/11/2021"; - 你没有它 - 它不会编译,因为 string 不能隐式转换为 DateTime

其次:DateTime 只不过是时间的数字表示。所以在引擎盖下它只不过是一个数字(如前所述,自给定时间点以来的 ns 数)。日期的显示方式只是一个小问题 - 引擎盖下的值保持不变。

请阅读如何在 C# 中格式化日期以及如何解析它。

【讨论】:

  • 请看我的截图。我的问题不是我的实际代码。它只是为了解释。我没有将 03/11/2021 分配给我的日期时间。我很确定我传入的对象没有正确存储。
猜你喜欢
  • 2013-10-19
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2016-01-02
  • 1970-01-01
  • 2014-06-11
  • 2019-02-16
相关资源
最近更新 更多