首页 > 解决方案 > DateTime 字符串格式错误

问题描述

我在转换字符串格式的日期时间时遇到问题,但我无法将其转换为 DateTime 格式。

我有错误:

该字符串未被识别为有效的日期时间。从索引 3 开始有一个未知单词

因为我阅读了一个带有日期字符串的 .xmls 文档,17-ago-18 我认为它类似于"dd-MMM-yy"

有人可以帮我解决这个问题吗?

我的代码是:

    public JsonResult Pedidos(List<string[]> lines)
    {
        using (TransactionScope scope = HelperTransactionScope.getTransactionScope())
        {

            try
            {
                for (int i = 1; i < lines.Count; i++)
                {
                    if (lines[i].Length == 1)
                        return Json("400");

                    PedidosFundilag pedido = new PedidosFundilag();
                    pedido.Cliente = lines[i][0];
                    pedido.Division = lines[i][1];
                    pedido.NumParte = lines[i][2];
                    pedido.Cantidad = Convert.ToInt32(lines[i][3]);
                    pedido.FechaSolicitud = Convert.ToDateTime(lines[i][4]);         
                    pedido.FechaEnvio = Convert.ToDateTime(lines[i][5]);
                    pedido.OrdenCompra = lines[i][6];
                    pedido.NumConfirmacion = lines[i][7];

                    AgregarPedido(pedido);
                }

                scope.Complete();
                return Json("200");
            }
            catch(Exception ex)
            {
                ModelState.AddModelError("", ex.InnerException == null ? ex.Message : ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : ex.InnerException.Message);
                return Json(ex.Message, "400");
            }

标签: c#ajaxasp.net-mvcdatetimeasp.net-mvc-5

解决方案


解析器无法检测到您的字符串的语言。您必须明确告诉它日期是葡萄牙语。这就是该Convert.ToDateTime方法的第二个参数的用途。

方法文档:https ://msdn.microsoft.com/en-us/library/9xk1h71t(v=vs.110).aspx

支持的文化代码的完整列表:https ://msdn.microsoft.com/en-us/library/hh441729.aspx

使用示例:

CultureInfo culture = new CultureInfo("pt-BR");
DateTime dateTimeValue = Convert.ToDateTime(youDateString, culture);

推荐阅读