Amar chand123 Ответов: 2

Проблема в формате datetime в C# winform


я пытаюсь использовать формат DateTime show in "dd/MM/yyyy HH:mm:ss" Like "06/06/2020 20:06:55"

но я потерпел неудачу может ли кто нибудь помочь мне

мой код таков :

Строка date = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
DateTime fullDate = конвертировать.ToDateTime(дата);


строка fileSavepath = "" + folderPath + "Report -" + fullDate.День + "-" + полный день.Месяц + "-" + полная дата.Час + "-" + полная дата.Минута + "-" + полная дата.Второй + ".XLSX-файл";

ВБ.Сохранить как(fileSavepath);

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

когда я использую отладку
моя первая строка выводит datetime правильного формата, но после Второй datetime fullDate выводит неправильный формат

я хочу, чтобы при сохранении файла он сохранялся "отчет -06-06-20-06-55" но теперь это спасет "отчет -6-6-20-6-55"

MadMyche

Просто рекомендация... Я бы отформатировал один из канонических шаблонов datetime, который позволит осуществлять естественную сортировку по имени, а также по дате.
Я лично использую что-то вроде Filename_20201231-181005.ext

Amar chand123

Спасибо я стараюсь

KarstenK

Хороший совет - если я пишу файлы, то делаю это аналогично.

2 Ответов

Рейтинг:
13

Richard MacCutchan

Почему вы конвертируете дату и время?Теперь к строке просто для того, чтобы преобразовать ее обратно в объект DateTime? Все, что вам нужно сделать, чтобы создать свое имя файла, это:

string filename = string.Format("Report -{0}.xlsx", DateTime.Now.ToString("dd-MM-hh-mm-ss"));
string fileSavepath = Path.Combine(folderPath, filename);


Amar chand123

Спасибо Вам за ответ сэр Ричард и почему я конвертирую строку в datetime и еще раз datetime потому что когда я пробую Google я нашел некоторые сказали так что я просто пытаюсь

Richard MacCutchan

Не полагайтесь на Google, чтобы написать свой код. Потратьте некоторое время на изучение языка.

Amar chand123

Я новичок в языке поэтому когда у меня возникают какие либо проблемы я пытаюсь найти решения в Google и теперь каждый день провожу один час на YouTube для изучения языка

Richard MacCutchan

Что ж, все эти часы, вероятно, потрачены впустую. Возьмите себе хорошую книгу по C# и учитесь там.

Amar chand123

Спасибо за предложения теперь я думаю что мне действительно нужна книга по изучению языка после блокировки я иду и покупаю книгу

Richard MacCutchan

А пока вы можете воспользоваться официальными страницами Microsoft. Видеть Учебные Пособия По C# | Microsoft Docs[^].

Amar chand123

Спасибо

Рейтинг:
0

OriginalGriff

Почему?
значение datetime.Теперь это уже значение DateTime ... так зачем же преобразовывать это в строку, просто чтобы преобразовать ее обратно в DateTime - тем более, что вы указываете формат ToString, но используете системный дефолт для преобразования?
Просто используйте DateTime.Теперь непосредственно:

DateTime now = DateTime.Now;
string formattedDate = $"Report -{now.Day:00}-{now.Month:00}-{now.Hour:00}-{now.Minute:00}-{now.Second:00}";
string fileSavePath = Path.Combine(folderPath, formattedDate + ".xlsx");
Примечание: я копирую дату и время.Теперь в переменную - это важно, так как многократное чтение DateTime.Теперь может дать проблемы с согласованностью около полуночи!


Amar chand123

Сначала я пробую только datetime filldate = datetime.теперь, но это не работает, чем я пытаюсь Google для решений, то я нахожу это, так что я пытаюсь, но это также не работает, то я ставлю вопрос здесь, потому что здесь я всегда узнаю новое

OriginalGriff

C# чувствителен к регистру символов:
filldate датавремя = датавремя.сейчас
недопустимый:
Filldate датавремя = Датавремя.Сейчас;
Является.

Amar chand123

Сэр, я пробую DateTime filldate = DateTime.Сейчас, в этом комментарии я набрал только в секунды, дата, GMT