繁体   English   中英

将字符串值解析为日期时间值

[英]Parse string value to datetime value

我需要将字符串值解析为日期时间值,我的日期格式如下:

DD.MM.YYYY

我想以这种格式解析值:

YYYY-MM-DD

我试图这样做:

DateTime.ParseExact(date_req, "yyyy-MM-dd", CultureInfo.InvariantCulture); 

但是我有一个错误:字符串未被识别为有效的DateTime。

有没有办法做到这一点?

如果您有格式为DD.MM.YYYY的字符串,为什么要将YYYY-MM-DD传递给ParseExact函数?

尝试这样:

string dateStr = "12.06.2012";
DateTime date = DateTime.ParseExact(dateStr, "dd.MM.yyyy", CultureInfo.InvariantCulture);

然后,当您想将此DateTime实例输出到某处时,可以使用YYYY-MM-DD格式,如下所示:

string result = date.ToString("yyyy-MM-dd");

解析日期时,您需要指定要阅读的格式,而不是以后要输出的格式。

因此,请使用dd.MM.yyyy作为ParseExact参数。

检查DateTime.ParseExact方法(字符串,字符串,IFormatProvider)将日期和时间的指定字符串表示形式转换为其等效的DateTime。 字符串表示形式的格式必须与指定的格式完全匹配,否则将引发异常。

您必须将格式字符串指定为DD.MM.YYYY而不是"yyyy-MM-dd"

尝试这个:

DateTime dateValue = DateTime.ParseExact(date_req, "DD.MM.YYYY", CultureInfo.InvariantCulture );

// use this when you need to show that formatted date value
string formattedDate = dateValue.ToString("yyyy-MM-dd");

更好的方法是使用DateTime.TryParseExact方法 ,如果您希望将其用作日期而不是字符串,请修改您的区域性信息和日期分隔符。

CultureInfo enUS = new CultureInfo("en-US"); 
string dateString;
DateTime dateValue;
dateString = "05.01.2009"; 
if (DateTime.TryParseExact(dateString, "DD.MM.YYYY", enUS, 
                        DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

我认为您想要做的是解析dd.MM.yyyy ,然后将其显示为yyyy-MM-dd

您首先必须将string解析为DateTime

DateTime date = DateTime.ParseExact(date_req, "yyyy-MM-dd", CultureInfo.InvariantCulture); 

现在, date是计算机实际理解的日期的表示形式(之前只是一个字符串)。 现在,您可以随时显示该对象:

string yyyyMMdd = date.ToString("yyyy-MM-dd");
string arabic = date.ToString("yyyy-MM-dd", new CultureInfo("ar"));
// and so on

不要忘记,当将日期从字符串转换为DateTime并返回时,文化和时区值得牢记。

首先以现有格式解析它,然后转换为所需的字符串格式。

var date = DateTime.ParseExact(date_req, "dd.MM.yyyy", CultureInfo.InvariantCulture); 
var str = date.ToString("yyyy-MM-dd");

您可以先将其转换为字符数组。 那么您可以将年/月/年分别解析为整数。 您知道数字的索引,因此这很容易。 之后,您可以按照自己喜欢的方式连接每个元素。

错误。 您有蛋糕,想吃木桩。 为了使您的胃相信蛋糕是桩,您必须将蛋糕转换成桩。 无法做到这一点。 解析是要接受一个值,然后使用模式(或多个)将其转换为其他值,而不进行转换。 因此,您想要的可能是正确的,但您提出的要求是错误的。

暂无
暂无

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

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