Member 14760154 Ответов: 1

Как преобразовать 10/10/20 6:05 в 10/10/2020 06:05


У меня проблема с моим проектом ,

Я должен конвертировать datetime из excel с помощью eppplus в этот формат " 10/10/20 6:05"

когда я пытаюсь преобразовать его ,он показывает такую ошибку

"
System.FormatException: String was not recognized as a valid DateTime.
"

как я могу решить эту проблему?

это мой код.

Что я уже пробовал:

protected void check(object sender, EventArgs e)
       {
           if (FileUpload1.HasFile)
           {
               string filename = "Hr_Report_" + DateTime.Now.ToString("dddd_dd_MMMM_yyyy") + ".xlsx";
               FileUpload1.SaveAs(temp_file + filename);
               string tempfile = temp_file + filename;
               string c = @tempfile;
               DataTable table = new DataTable();

               FileInfo existingFile = new FileInfo(tempfile); //+ FileUpload1.FileName);
               using (ExcelPackage package = new ExcelPackage(existingFile))
               {
                   ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                   int colCount = worksheet.Dimension.End.Column;
                   int rowCount = worksheet.Dimension.End.Row;
                   table.Columns.Add("Emp_NIK", typeof(string));
                   table.Columns.Add("Date_Finger", typeof(DateTime));
                   table.Columns.Add("Time_Finger", typeof(string));
                   table.Columns.Add("Status", typeof(string));

                   for (int i = 1; i < rowCount; i++)
                   {
                       TableRow row = new TableRow();
                       TableCell cell1 = new TableCell();
                       string tanggal = worksheet.Cells[i + 1, 2].Text.ToString();
                       string employee_id = worksheet.Cells[i + 1, 1].Text.ToString();
                       string status = worksheet.Cells[i + 1, 3].Text.ToString();
                       DateTime y = Convert.ToDateTime(tanggal);
                       finger.InsertData(employee_id, "null", status, y, "test ricki");
                   }
               }
           }
           else
           {
               Response.Write("<script>window.alert('File Belum diupload')</script>");
           }
       }

1 Ответов

Рейтинг:
6

Maciej Los

Заменить этот:

DateTime y = Convert.ToDateTime(tanggal);

с этим:
DateTime y = DateTime.ParseExact(tanggal, "dd/MM/yy H:mm", CultureInfo.InvariantCulture);


Примечание: Я не уверен, какое значение соответствует месяцу и Дню. Пожалуйста, измените его соответствующим образом.

Для получения более подробной информации, пожалуйста, смотрите: значение datetime.Метод ParseExact (System) | Microsoft Docs[^]


Garth J Lancaster

Есть "5" :-)

Maciej Los

Спасибо.