【问题标题】:Convert a get;set string DateEntered from yyyy-MM-dd to MM-dd-yyyy in C#?在 C# 中将 get;set 字符串 DateEntered 从 yyyy-MM-dd 转换为 MM-dd-yyyy?
【发布时间】:2015-04-22 14:36:20
【问题描述】:

在一个 .cs 文件中,我有以下内容:

public string DateEntered { get; set; }

在另一个 .cs 文件中,我有另一个字符串来获取某个日期。

public string HighestDate
    {
      get
        {
           ...
           return d.DateEntered;
        }
    }

想知道如何将输出从 yyyy-MM-dd 转换为 MM-dd-yyyy?使用范围如下:

data.HighestDate

提前致谢。

编辑:

我认为是不可分割的另一部分代码:

var s = this...(i => i.DateEntered == DateTime.UtcNow.ToString("MM-dd-yyyy"));

但是,这只会更改日期格式的某些实例。

【问题讨论】:

  • 为什么不将这两个属性都保存为DateTime 而不是string?您应该始终选择 proper 类型的属性。然后您可以将它们(通常使用.ToString())格式化为文本表示形式。
  • 您应该将基础日期保存为DateTime 变量,而不是字符串。然后,您可以在 UI 中以您希望的任何格式显示您的字符串。
  • 对不起,我添加了一个编辑,我认为它设置为 DateTime。

标签: c# date datetime time


【解决方案1】:

您应该始终将日期存储为DateTime 变量:

public DateTime DateEntered { get; set; }

然后您可以在您的消费者应用程序 (UI) 中呈现您喜欢的日期:

public string HighestDate
{
  get
    {
       ...
       return d.DateEntered.ToString("MM-dd-yyyy");
    }
}

【讨论】:

  • 对不起...删除它! :)
【解决方案2】:

如果您将它们都保存为DateTime,那么您可以使用data.HighestDate.ToString("MM-dd-yyyy")。否则,您可以使用:

DateTime.ParseExact(data.HighestDate, "yyyy-MM-dd", CultureInfo.InvariantCulture).ToString("MM-dd-yyyy")

尽管您仍应尝试修改代码以将它们保存为DateTime 对象,但这是正确的做法。 (并节省内存空间。)

https://msdn.microsoft.com/en-us/library/w2sa9yss%28v=vs.110%29.aspx https://msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspx

快速谷歌搜索会为您提供结果。

【讨论】:

    【解决方案3】:

    首先,我建议使用 DateTime 来存储值并在可能的最后一刻将其转换为字符串。

    其次,使用 DateTime.ParseExact 从字符串中读取特定格式并使用 ToString("some format") 将 DateTime 格式化为字符串

    【讨论】:

      【解决方案4】:
      DateTime parsedDate;
      if (DateTime.TryParse(data.HighestDate, out parsedDate))
      {
          var reformatted = parsedDate.ToString("MM-dd-yyyy");
      }
      

      【讨论】:

      • 不保证解析data.HighestDate 没有任何IFormatProvider。这些属性类型应该是DateTime,因为它们的名字以..Date结尾。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多