如何将DateTime转换为特定字符串格式(两种方式,例如给定格式为“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,请使用以下方法之一:
-
DateTime.Parse
-
DateTime.ParseExact
或者,您可以使用try-parse模式:
-
DateTime.TryParse
-
DateTime.TryParseExact
阅读有关自定义日期和时间格式字符串的更多信息
将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()
则必须处理exception
没有它与yyyy / mm / dd的字符串,我需要yyyyMMdd格式
如果你只需要从字符串中删除斜杠,那么你只需要替换它们吗?
例:
myDateString = "2013/03/28"; myDateString = myDateString.Replace("/", "");
myDateString现在应为“20130328”。
少了一点矫枉过正:)
这是转换为格式的简单方法
DateTime.Now.ToString("yyyyMMdd");
只是这样做。
string yourFormat = DateTime.Now.ToString("yyyyMMdd");
快乐编码:)
根据属性名称,您似乎试图通过赋值将字符串转换为日期:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
这可能是由于当前的UI文化,因此在分配时无法正确解释日期字符串。
我在搜索这个答案时遇到的一种更简单的方法;
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");