如何将 DateTime 转换为/从特定的字符串格式(两种方式,例如给定格式为“yyyyMMdd”)?
Posted
技术标签:
【中文标题】如何将 DateTime 转换为/从特定的字符串格式(两种方式,例如给定格式为“yyyyMMdd”)?【英文标题】:How to convert DateTime to/from specific string format (both ways, e.g. given Format is "yyyyMMdd")? 【发布时间】:2010-08-13 14:21:24 【问题描述】:我在转换字符串格式的日期时间时遇到问题,但我无法使用"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;
【问题讨论】:
现在的日期时间字符串是什么格式的? 您的代码 sn-p 与问题的相关性是什么? 我有点不清楚;您是在使用日期的字符串表示形式还是 DateTime 对象?假设它是一个 DateTime 对象,您可以调用obj.ToString("yyyyMMdd")
;
实际上 TPOCDate2 已经是一个变量,我只想将 tpoc2[0] 中的元素转换为 yyyyMMdd 格式。希望这能回答你的问题
你被困在什么地方了吗?
【参考方案1】:
如果您在格式为“ddMMyyyy”的字符串中有一个日期,并且想要将其转换为“yyyyMMdd”,您可以这样做:
DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy",
CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
【讨论】:
卡住了你的代码,这个运行良好 DateTime.TryParse(stringValue, out outputInDateTime);【参考方案2】:解析日期时间:
要解析 DateTime,请使用以下方法之一:
DateTime.Parse
DateTime.ParseExact
或者,您可以使用try-parse 模式:
DateTime.TryParse
DateTime.TryParseExact
阅读更多关于Custom Date and Time Format Strings的信息。
将 DateTime 转换为字符串:
要以“yyyyMMdd”格式将日期时间返回为字符串,您可以使用ToString
方法。
string date = DateTime.ToString("yyyyMMdd");
请注意,大写 M 表示月份,小写 m 表示分钟。
你的情况:
在您的情况下,假设您不想处理日期格式不同或丢失的情况,使用ParseExact
最方便:
string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse,
"yyyyMMdd",
CultureInfo.InvariantCulture);
【讨论】:
这是一个老话题,但对于那些搜索,上面的链接,“文化特定格式”现在是一个死链接。这是最新且内容丰富的Custom Date and Time Format Strings【参考方案3】:您可以像这样将字符串转换为 DateTime
值:
DateTime date = DateTime.Parse(something);
您可以将DateTime
值转换为格式化字符串,如下所示:
date.ToString("yyyyMMdd");
【讨论】:
【参考方案4】:字符串到 yyyy-MM-dd 日期格式: 示例:
TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");
【讨论】:
【参考方案5】:如果您想将 DATE 作为字符串与 TIME 以及。我们可以这样做:
//Date and Time is taking as current system Date-Time
DateTime.Now.ToString("yyyyMMdd-HHmmss");
【讨论】:
分钟应该是小“m”!? “yyyyMMdd-HHmmss”【参考方案6】:如果您想匹配特定的日期格式,请使用 DateTime.TryParseExact()
string format = "yyyyMMdd";
DateTime dateTime;
DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateTime);
【讨论】:
【参考方案7】:您可以使用DateTime.TryParse()
代替DateTime.Parse()
。
使用TryParse()
,如果成功,您将有一个返回值;使用Parse()
,您必须处理异常
【讨论】:
【参考方案8】:只要这样就行了。
string yourFormat = DateTime.Now.ToString("yyyyMMdd");
编码愉快:)
【讨论】:
【参考方案9】:不是 yyyy/mm/dd 的字符串,我需要 yyyyMMdd 格式的字符串
如果您只需要从字符串中删除斜杠,您不只是替换它们吗?
例子:
myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");
myDateString 现在应该是“20130328”。
少一些矫枉过正:)
【讨论】:
【参考方案10】:这是转换为格式的简单方法
DateTime.Now.ToString("yyyyMMdd");
【讨论】:
【参考方案11】:根据属性名称,您似乎正在尝试通过赋值将字符串转换为日期:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
这可能是由于当前的 UI 文化,因此在分配时无法正确解释日期字符串。
【讨论】:
不是 yyyy/mm/dd 的字符串,我需要 yyyyMMdd 格式的字符串 并且在做claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString("yyyyMMdd");它给出了一些构建错误。 'string.ToString(System.IFormatProvider)' 的最佳重载方法匹配有一些无效的争论 @Matt - 真的吗?您编辑了一个 4 年以上的回复,甚至没有标记为添加标签的答案?这是一个严重的强迫症,你已经到了那里。【参考方案12】:来自 C# 6:
var dateTimeUtcAsString = $"DateTime.UtcNow:o";
结果将是:“2019-01-15T11:46:33.2752667Z”
【讨论】:
【参考方案13】:我在搜索此答案时也遇到了一种更简单的方法;
string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
【讨论】:
我有一个DateTime
的值怎么样?喜欢DateTime newDate = DateTime.Parse(Session["date"].ToString());
?【参考方案14】:
你可以试试这些代码
claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd");
或者
claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss");
【讨论】:
看在上帝的份上(我们的救世主 Harambe),永远不要使用 Convert.ToDateTime... 这东西太慢了(~100ms)!只需使用 ParseExact 或 TryParse - waaaaay 更快!!!以上是关于如何将 DateTime 转换为/从特定的字符串格式(两种方式,例如给定格式为“yyyyMMdd”)?的主要内容,如果未能解决你的问题,请参考以下文章
使用 strtotime 从 jQueryUI datepicker 将字符串转换为 datetime
如何从 MySql 数据库中获取日期到 C# DateTime 对象?