将字符串(2015-FEB-17)转换为日期(20150217)格式

时间:2015-10-08 19:40:42

标签: c#

我尝试了以下但无法得到它

string s= "2015-FEB-17";

//I want it to be converted to date format as 
 date = "20150217"

//I tried doing as  follows but didn't work 
 var myDate = DateTime.ParseExact(dt, "yyyy-MMM-dd", CultureInfo.InvariantCulture);

3 个答案:

答案 0 :(得分:1)

尝试

var myDate = DateTime.ParseExact(s, "yyyy-MMM-dd", CultureInfo.InvariantCulture);
var q = myDate.ToString("yyyyMMdd");

或只是

var q = DateTime.ParseExact(s, "yyyy-MMM-dd", CultureInfo.InvariantCulture)
                .ToString("yyyyMMdd");

答案 1 :(得分:1)

ParseExact将字符串转换为DateTime。然后,您需要将DateTime格式化为字符串。

string s= "2015-FEB-17";
DateTime myDate = DateTime.ParseExact(s, "yyyy-MMM-dd", CultureInfo.InvariantCulture);
string result = myDate.ToString("yyyyMMdd"); // now it's "20150217"

此外,您在ParseExact格式字符串中缺少短划线。

如果您的应用程序仅处理没有国际化的美式日期,则最好指定CultureInfo.InvariantCulture

答案 2 :(得分:1)

为什么不缩短它,因为你正在使用.ToString("yyyyMMdd")你正在删除新值的时间部分

string sDateStr = "2015-FEB-17";
var newDateFrmt = Convert.ToDateTime(sDateStr).ToString("yyyyMMdd");

20150217根据格式成为预期答案。

不要多余这种方法也可以采取

string sDateStr = "2015-FEB-17";
var someDate = DateTime.ParseExact(sDateStr, "yyyy-MMM-dd", CultureInfo.InvariantCulture);
var newDateFrmt = someDate.ToString("yyyyMMdd");