c# – 如何将任何日期格式转换为yyyy-MM-dd
我的应用程序解析字符串数据,提取日期并确定日期格式并将其转换为yyyy-MM-dd。
源日期可以是任何石灰dd-mm-yyyy,dd / mm / yyyy,mm-dd-yyyy,mm / dd / yyyy或甚至yyyy-MM-dd。
除了使用开关盒尝试不同的排列和组合之外,还有其他有效的方法吗?
string sourceDate = "31-08-2012"; String.Format("{0:yyyy-MM-dd}", sourceDate);
上面的代码只返回相同的sourceDate“31-08-2012”。
string DateString = "11/12/2009"; IFormatProvider culture = new CultureInfo("en-US", true); DateTime dateVal = DateTime.ParseExact(DateString, "yyyy-MM-dd", culture);
这些链接也可以帮助您
DateTime.ToString()模式
DateTime的字符串格式[C#]
将您的字符串转换为DateTime
,然后使用DateTime.ToString("yyyy-MM-dd");
DateTime temp = DateTime.ParseExact(sourceDate, "dd-MM-yyyy", CultureInfo.InvariantCulture); string str = temp.ToString("yyyy-MM-ddd");
string sourceDateText = "31-08-2012"; DateTime sourceDate = DateTime.Parse(sourceDateText, "dd-MM-yyyy") string formatted = sourceDate.ToString("yyyy-MM-dd");
?
您需要将输入解析为DateTime对象,然后将其转换为您想要的任何文本格式。
如果您不确定将获得何种格式,可以使用validation或datetimePicker或其他组件将用户限制为固定格式。
这是您的主要问题:
源日期可以是dd-mm-yyyy,dd / mm / yyyy,mm-dd-yyyy,mm / dd / yyyy或甚至yyyy-MM-dd。
如果您在01/02/2013
,是1月2日还是2月1日? 您应该首先解决此问题,并且解析输入将更容易。
我建议你退后一步,探索一下你想要更详细解决的问题。
您可以通过以下方式将日期格式从dd/MM/yyyy
更改为yyyy-MM-dd
:
string date = DateTime.ParseExact(SourceDate, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
在这里, SourceDate
是变量,您将在其中获得所选日期。