首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#将yyyymmdd文本转换为dd/MM/yyyy

c#将yyyymmdd文本转换为dd/MM/yyyy
EN

Stack Overflow用户
提问于 2018-12-17 13:26:56
回答 4查看 4.9K关注 0票数 0

我有一些行中的文本,如yyyymmdd (例如: 20181211),我需要将其转换为dd/MM/yyyy

我正在使用:

代码语言:javascript
复制
cashRow["BusinessDate"] = Convert.ToDateTime(row.Cells[ClosingDate.Index].Value.ToString()).ToString("dd/MM/yyyy");

我得到一个错误“字符串没有被识别为有效的DateTime。你知道我哪里出错了吗?”

EN

回答 4

Stack Overflow用户

发布于 2018-12-17 13:38:41

您需要使用ParseExact (或TryParseExact)来解析日期:

代码语言:javascript
复制
var date = "20181217";
var parsedDate = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
var formattedDate = parsedDate.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)

在这里,我们告诉ParseExact期望yyyyMMdd格式的日期,然后告诉它将解析后的日期格式化为dd/MM/yyyy格式。

将其应用于您的代码:

代码语言:javascript
复制
cashRow["BusinessDate"] = DateTime.ParseExact(row.Cells[ClosingDate.Index].Value.ToString(), "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
票数 8
EN

Stack Overflow用户

发布于 2018-12-17 13:38:58

您必须使用ParseExact将您的yyyyMMdd字符串转换为DateTime,如下所示,然后一切正常。

代码语言:javascript
复制
cashRow["BusinessDate"] = DateTime.ParseExact(row.Cells[ClosingDate.Index].Value.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture).ToString("dd/MM/yyyy");
票数 2
EN

Stack Overflow用户

发布于 2018-12-17 13:40:01

因为您已经知道输入yyyyMMdd的确切格式(例如: 20181211),所以只需将其提供给DateTime.ParseExact(),然后在返回的DateTime对象上调用ToString()

代码语言:javascript
复制
string YourOutput = DateTime.ParseExact(p_dates, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53809405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档