繁体   English   中英

如何将字符串转换为指定的日期格式

[英]How to convert the string into specified date format

您好我想按以下格式转换日期-2012年6月1日,2012年3月3日,2012年6月11日

    Convert.ToDateTime(ds.Tables[0].Rows[0]["Date"]).ToString("d MMM yyyy")

但是有了上面的代码我就变得像这样

2012年6月1日,2012年3月3日,请帮助我。 谢谢。

未经测试,但它应该可以工作:

DateTime dateTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["Date"]);
string date = string.Format("{0}{1} {2} {3}", dateTime.Day, GetOrdinal(dateTime.Day), dateTime.ToString("MMM"), datetTime.Year);

public string GetOrdinal(int number)
{
        switch(number % 100)
        {
            case 11:
            case 12:
            case 13:
                    return "th";
        }
        switch(number % 10)
        {
                case 1:
                        return "st";
                case 2:
                        return "nd";
                case 3:
                        return "rd";
                default:
                        return "th";
        }
}

无法使用格式字符串执行此操作。 您将必须自行转换日期。 此答案中描述一种方法。

如果要使用“ st”,“ nd”,“ rd”,“ th”等,则没有其他方法可以使用swtich运算符:

switch(yourdate.Day % 10)
  case(1): ...
  case(2): ...

你可以这样尝试

string strPostfix = string.Empty;
if (DateTime.Now.Day == 1 || DateTime.Now.Day == 21 || DateTime.Now.Day == 31)
    {
    strPostfix = "st";
    }
    else if (DateTime.Now.Day == 2 || DateTime.Now.Day == 22)
    {
    strPostfix = "nd";
    }
    else if (DateTime.Now.Day == 3 || DateTime.Now.Day == 23)
    {
    strPostfix = "rd";
    }
    else
    {
    strPostfix = "th";
    }

希望这会对您有所帮助,谢谢。

由于普通语言是非常特定于语言的,因此不建议使用它们! 但是,如果必须的话,编写一个switch语句来处理它应该非常简单。 (如果这对您真的很重要)

然后,您可以在空格处分割字符串,处理第一部分,然后再次合并字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM