正在尝试将字符串转换为与字符串格式不同的日期时间

本文关键字:字符串 格式 时间 日期 转换 | 更新日期: 2023-09-27 17:58:52

所以我不得不将日期格式为(MM-dd-yyyy)转换为(dd-MMM-yyyy)。我最终做的是。。。

string strProvisionalDate = "04-22-2001";
string strFormat = "MM-dd-yyyy";
DateTime dtProvisional;
DateTime.TryParseExact(strProvisionalDate, strFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dtProvisional);
string strProvisionalDateConverted = dtProvisional.ToString("dd-MMM-yyyy");
string strFormatConverted = "dd-MMM-yyyy";
DateTime dtProvisionalConverted;
DateTime.TryParseExact(strProvisionalDateConverted, strFormatConverted, CultureInfo.InvariantCulture, DateTimeStyles.None, out dtProvisionalConverted);

基本上,我将其转换为DateTime,将其转换成我想要的格式的字符串,然后将其转换回DateTime。它有效,但我很好奇是否有更好的方法。。。它看起来不太优雅。

edit:事实证明,在这个dtTemporary和dtProvisionalConverted最终是相同的。所以我的新问题是,如何将MM-dd-YYYY格式的字符串转换为dd-MMM-YYYY格式的DateTime?dtTemporary要进入SQL数据库,它必须是Date格式。

正在尝试将字符串转换为与字符串格式不同的日期时间

DateTime对象不将日期/时间存储为一种格式,而是将其存储为自epoch以来的多个刻度。作为对象的dtTemporary和dtProvisionalConverted DateTime之间不应有区别(它们的撤消传递值应相同)。当使用字符串格式功能将DateTime输出到字符串时,始终可以更改字符串格式。

请参阅MSDN文章的备注部分。

我这将正确格式化你的日期输出:

String.Format("{0:dd MMM yyyy}",dt);

在类似的行中搜索详细信息。。。。对我有用…

DateTime IncentiveDate;
    /// <summary>
    /// Input Format: ddMMyy eg. 070711
    /// Output Format: dd-MMM-YYYY eg. 07-JUL-2011
    /// </summary>
    public string IncentiveDateAsString
    {
        set
        {
            DateTime.TryParseExact(value, "ddMMyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out IncentiveDate);
        }
        get
        {
            return IncentiveDate.ToString("dd-MMM-yyyy");
        }
    }