如何将日期时间转换为指定的字符串格式(双向转换,例如给定的格式为“yyyyMMdd”)?

151

我遇到了一个问题,无法将一个字符串格式的日期时间按照 "yyyyMMdd" 的格式进行转换。

我的代码如下:

string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString();
string[] tpocinfo = Regex.Split(tpoc,";");

for (int i = 0; i < tpocinfo.Length; i++)
{
    switch (i)
    {
        case 0:
        {
            string[] tpoc2 = Regex.Split(tpocinfo[0], ",");
            claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
            claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]);
            claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString();
        }
        break;

现在日期时间字符串的格式是什么? - Falle1234
11
你的代码片段与问题有什么关联? - Darin Dimitrov
2
我有点不清楚;你是使用日期的字符串表示,还是一个DateTime对象?假设它是一个DateTime对象,你可以直接调用 obj.ToString("yyyyMMdd") - Nathan Taylor
尝试使用 Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd"); - A. Zalonis
显示剩余2条评论
14个回答

240

如果你有一个格式为 "ddMMyyyy" 的日期字符串,想将其转换为 "yyyyMMdd",你可以这样做:

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");

4
你的代码卡住了,这个函数可以解决问题:DateTime.TryParse(stringValue, out outputInDateTime);它可以将字符串类型的数据转换成日期时间类型,转换成功后会将结果输出到outputInDateTime变量中。 - DJ'

67

解析日期时间:

要解析日期时间,请使用以下方法之一:

或者,您可以使用try-parse模式:

了解更多关于自定义日期和时间格式字符串的内容。

将DateTime转换为字符串:

要将DateTime作为"yyyyMMdd"格式的字符串返回,可以使用ToString方法。

  • 代码片段示例:string date = DateTime.ToString("yyyyMMdd");
  • 请注意,大写M表示月份,小写m表示分钟。

您的情况:

在您的情况下,假设您不想处理日期格式或缺失的情况,最方便的方法是使用ParseExact

string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse, 
                                          "yyyyMMdd",
                                          CultureInfo.InvariantCulture);

7
这是一个老话题,但对于那些在搜索的人来说,上面的链接“culture-specific format”现在已经失效。这里提供一个当前有效且信息量丰富的链接:自定义日期和时间格式字符串 - user416527

42

你可以通过以下方式将字符串转换为DateTime值:

DateTime date = DateTime.Parse(something);

您可以按照以下方式将 DateTime 值转换为格式化字符串:

date.ToString("yyyyMMdd");

11

将字符串转换为 yyyy-MM-dd 日期格式: 示例:

TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");   

11
如果您想要将日期时间一起作为字符串显示,我们可以这样做:

代码示例:

    //Date and Time is taking as current system Date-Time    
    DateTime.Now.ToString("yyyyMMdd-HHmmss");

7
分钟应该用小写字母"m"!? "yyyyMMdd-HHmmss" - CeOnSql

6

如果你想匹配一个特定的日期格式,请使用DateTime.TryParseExact()

   string format = "yyyyMMdd"; 
    DateTime dateTime;
    DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
                                             DateTimeStyles.None, out dateTime);

5
只需按照以下方式操作即可。
string yourFormat = DateTime.Now.ToString("yyyyMMdd");

愉快地编码 :)


5
您可以使用 DateTime.TryParse() 来代替 DateTime.Parse()
使用 TryParse(),如果成功则返回一个值,而使用 Parse() 则需要处理异常。

4
这是一种简单的格式转换方式。
 DateTime.Now.ToString("yyyyMMdd");

3

不,它是一个带有yyyy/mm/dd格式的字符串,我需要它变成yyyyMMdd格式

如果你只需要从字符串中移除斜线,你只需要替换他们吗?

例如:


```python new_date = old_date.replace("/", "") ```
myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");

现在,myDateString应该是"20130328"。

不用这么夸张 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接