-1

我想将 a 转换datetime为字符串。

但是现在返回的结果04 August, 0016不是我需要的。

我希望结果是04 August, 2016

C#代码:

DataTable dtGroupCurr = new DataTable();
dtGroupCurr = sourceGroupCurr.Tables[0];

var groupedCurr = (from dt2 in dtGroupCurr.AsEnumerable()
    select new
    {
         S_DATE = dt2.Field<DateTime>("S_DATE"),
         BANK_CODE = dt2.Field<string>("BANK_CODE"),
         BANK_NAME = dt2.Field<string>("BANK_NAME")
    }).Distinct().OrderBy(x => x.S_DATE);

foreach (var s in groupedCurr)
{
     string rDate = s.S_DATE.ToString("yyyy/MM/dd");
     IFormatProvider culture = new CultureInfo("en-US", true);
     DateTime date = DateTime.Parse(rDate, culture);
     string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture);
}

提前致谢 ;)

4

3 回答 3

1

尝试:

 string sDate = s.S_DATE.ToString("dd MMMM, yyyy", new CultureInfo("en-US", true));

或者

string rDate = s.S_DATE.ToString("yyyy/MM/dd",  CultureInfo.InvariantCulture); // To avoid override 
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime date = DateTime.Parse(rDate, culture);
string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture);

“/”自定义格式说明符表示日期分隔符,用于区分年、月和日。从当前或指定区域性的 DateTimeFormatInfo.DateSeparator 属性中检索适当的本地化日期分隔符。

MSDN

于 2016-08-04T04:45:06.687 回答
0

使用DateTime.ParseExact方法并指定如下格式:

string rDate = s.S_DATE.ToString("yyyy/MM/dd");
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime date = DateTime.ParseExact(rDate, "yyyy/MM/dd", culture);
string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture);
于 2016-08-04T03:26:01.410 回答
0

使用 Date 或DateTime.ToShortDateString(); Date.ToString("dd-MM-yyyy");

于 2018-02-15T10:04:20.983 回答