繁体   English   中英

如何将DateTime转换为特定字符串格式(两种方式,例如给定格式为“yyyyMMdd”)?

[英]How to convert DateTime to/from specific string format (both ways, e.g. given Format is “yyyyMMdd”)?

我在转换日期时间时出现问题,该日期时间是字符串格式,但我无法使用"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;

如果您的字符串中的日期格式为“ddMMyyyy”并想将其转换为“yyyyMMdd”,您可以这样做:

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

解析日期时间:

要解析DateTime,请使用以下方法之一:

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

阅读有关自定义日期和时间格式字符串的更多信息

将DateTime转换为字符串:

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

  • 代码段示例: string date = DateTime.ToString("yyyyMMdd");
  • 注意上限M表示月份,而下限表示m表示分钟。

你的情况:

在您的情况下,假设您不想处理日期不同格式或错误的情况,使用ParseExact最方便:

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

您可以将字符串转换为DateTime值,如下所示:

DateTime date = DateTime.Parse(something);

您可以将DateTime值转换为格式化的字符串,如下所示:

date.ToString("yyyyMMdd");

字符串到yyyy-MM-dd日期格式:示例:

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

如果你想把DATE作为带有TIME的字符串。 我们可以这样做:

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

如果要与特定日期格式匹配,请使用DateTime.TryParseExact()

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

您可以使用DateTime.TryParse()而不是DateTime.Parse()
使用TryParse() ,如果成功则返回值,使用Parse()则必须处理异常

只是这样做。

string yourFormat = DateTime.Now.ToString("yyyyMMdd");

快乐编码:)

没有它与yyyy / mm / dd的字符串,我需要yyyyMMdd格式

如果你只需要从字符串中删除斜杠,那么你只需要替换它们吗?

例:

myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");

myDateString现在应为“20130328”。

少了一点矫枉过正:)

这是转换为格式的简单方法

 DateTime.Now.ToString("yyyyMMdd");

根据属性名称,您似乎试图通过赋值将字符串转换为日期:

claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();

这可能是由于当前的UI文化,因此在分配时无法正确解释日期字符串。

从C#6开始:

var dateTimeUtcAsString = $"{DateTime.UtcNow:o}";

结果将是:“2019-01-15T11:46:33.2752667Z”

我在搜索这个答案时遇到的一种更简单的方法;

string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));

您可以尝试这些代码

claimantAuxillaryRecord.TPOCDate2  = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd"); 

要么

claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss"); 

暂无
暂无

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

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