繁体   English   中英

将字符串转换为日期时间格式C#时出错

[英]Error while converting string to datetime format c#

我无法将字符串转换为日期时间。

这是代码:

string[] itemIDList = null,
brandIdList = null,
indentItemIdList = null,
qtyList = null,
requiredDateList = null;

itemIDList = form["ItemId"].Split(',');
brandIdList = form["BrandId"].Split(',');
indentItemIdList = form["IndentItemId"].Split(',');
qtyList = form["Qty"].Split(',');
requiredDateList = form["RequiredDate"].Split(',');

//int fId = 0;
//selected fields
int cSelCount = 0;
if (itemIDList != null)
{
    foreach (string itemField in itemIDList)
    {
        string indentitemId = indentItemIdList[cSelCount] == "" 
            ? "0" 
            : indentItemIdList[cSelCount];

        string brandField = brandIdList[cSelCount];
        string qtyField = qtyList[cSelCount];

        DateTime requiredDateFiled = requiredDateList[cSelCount] == "" 
            ? DateTime.Now 
            : DateTime.ParseExact(requiredDateList[cSelCount], "dd-MM-yyyy", 
                CultureInfo.InvariantCulture);

        if (!string.IsNullOrEmpty(itemField) && 
            !string.IsNullOrEmpty(brandField) && 
            !string.IsNullOrEmpty(qtyField) && 
            qtyField != "0" && qtyField != "")
        {
            IndentItemModel objIndentItem = new IndentItemModel();
            objIndentItem.IndentItemId = Convert.ToInt32(indentitemId);
            objIndentItem.ItemId = Convert.ToInt32(itemField);
            objIndentItem.BrandId = Convert.ToInt32(brandField);
            objIndentItem.Qty = Convert.ToInt32(qtyField);
            objIndentItem.ItemStatusId = Convert.ToInt32(ItemStatus.Indent);
            objIndentItem.RequiredDate = Convert.ToDateTime(requiredDateFiled);
            objIndentItem.CreatedBy = objIndentItem.ModifiedBy = objModel.ModifiedBy;
            objIndentItem.ModifiedDate = objIndentItem.CreatedDate = DateTime.Now;
            indentItemList.Add(objIndentItem);
        }

        cSelCount++;
    }
}

错误信息:

错误信息

相同的格式代码在foreach循环之外工作。.我希望这与foreach循环无关,但有些地方我错过了一些事情..请帮助我解决问题

将我的代码更改为此格式,但仍然出现错误

我的系统日期提示为mm-dd-yy,而我解析为dd-MM-yyyy ..

我试图重新生成您的代码而没有错误。 requiredDateFiledDateTime因此您可以直接使用它。

string[] requiredDateList = new string[] { "03-27-2018", "" };
string[] itemIDList = new string[] { "1", "2" };

int cSelCount = 0;
if (itemIDList != null)
{
   foreach (string itemField in itemIDList)
   {
       DateTime requiredDateFiled = requiredDateList[cSelCount] == "" ? DateTime.Now : DateTime.ParseExact(requiredDateList[cSelCount].ToString(),
                        "MM-dd-yyyy", CultureInfo.InvariantCulture);

       // THIS LINE IS FOR KNOWLEDGE ONLY NO NEED OF THIS.
       requiredDateFiled = DateTime.ParseExact(requiredDateFiled.ToString("dd-MM-yyyy"), "dd-MM-yyyy", CultureInfo.InvariantCulture);
    }
}
CultureInfo provider = new CultureInfo("nl-NL");
DateTime dt = String.IsNullOrEmpty(date) ? DateTime.Now : DateTime.Parse(date);
Console.WriteLine(date.ToString("d", provider));

尝试这个。

暂无
暂无

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

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