在 C# 中将 get;set 字符串 DateInput 从 yyyy-MM-dd 转换为 MM-dd-yyyy



在一个.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变量:

public DateTime DateEntered { get; set; }

然后,您可以在使用者应用程序 (UI) 中根据需要呈现日期:

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

如果将它们都另存为 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.aspxhttps://msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspx

快速谷歌搜索会让你得到你的结果。

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

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

DateTime parsedDate;
if (DateTime.TryParse(data.HighestDate, out parsedDate))
{
    var reformatted = parsedDate.ToString("MM-dd-yyyy");
}

最新更新