0 / 0 / 0
Регистрация: 18.08.2018
Сообщений: 34
1

Строка не распознана как действительное значение DateTime

13.09.2018, 02:04. Показов 15371. Ответов 5

Author24 — интернет-сервис помощи студентам
снова не могу понять DataTime, я еще новичок, была у меня просто форма с date. Но в этот раз сказали сделать через DataTime. Я не могу понять что и как писать сначала перевел значение DataTime в строковое представление. После как я понял нужно из строкового представления вывести обратно в DataTime. Написал (наверное бурду) в интернете порылся не особо понял, может кто помочь написать правильно и объяснить что не так и как сделать так?? буду очень признателен.
C#
1
2
3
4
5
6
 public DateTime d1; 
DateTime d1 = DateTime.Now;
            string str_dt = d1.ToString(); //работает
 
            string inp_dt = Convert.ToDateTime(d1).ToString("mm.dd.yyyy");
            DateTime d2 = DateTime.Parse(inp_dt);//Строка не распознана как действительное значение DateTime."
что не так? вобще не дается мне DataTime. загвоздка в том что нужно обязательно сделать через нее
и главное понять что и к чему, может кто помочь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2018, 02:04
Ответы с готовыми решениями:

Строка не распознана как действительное значение DateTime
В строке высвечивается ошибка - "Строка не распознана как действительное значение DateTime". DT =...

Строка не распознана как действительное значение DateTime
Добрый день! Подскажите, пожалуйста, в чем ошибка? string DateT_r =...

Строка не распознана как действительное значение DateTime
Объясните почему? Строка не распознана как действительное значение DateTime ...

Данная строка не распознана как действительное значение DateTime. Обнаружено неизвестное слово,
Как исправить эту ошибку ? An unhandled exception of type 'System.FormatException' occurred in...

5
Эксперт .NET
17678 / 12864 / 3365
Регистрация: 17.09.2011
Сообщений: 21,132
13.09.2018, 03:13 2
Цитата Сообщение от 1nsan1ty Посмотреть сообщение
DataTime
Перво-наперво, тип называется DateTime: ДатаВремя, а не ДанныеВремя.

Цитата Сообщение от 1nsan1ty Посмотреть сообщение
что не так?
Вы дату переводите в строку в произвольном формате, а назад в дату пытаетесь перевести используя формат, установленный в текущий момент в системе. Если эти форматы не совпадают, то будет ошибка, что вы и наблюдаете.

Если у вас имеется строка, представляющая дату каком-нибудь экзотическом формате, то надо использовать метод ParseExact, который позволяет задать формат, в котором эта дата представлена:
C#
1
DateTime d2 = DateTime.ParseExact(inp_dt, "mm.dd.yyyy", null);
1
0 / 0 / 0
Регистрация: 18.08.2018
Сообщений: 34
13.09.2018, 14:07  [ТС] 3
прощу прощение за ошибку в DateTim, ближе к ночи уже перестаешь нормально соображать. Невнимательность
0
0 / 0 / 0
Регистрация: 18.08.2018
Сообщений: 34
13.09.2018, 14:49  [ТС] 4
написал как вы и сказали, но тут такой вопрос. на который я никак не могу найти ответ не хватает знания и понимания. У меня есть страница там я ввожу данные и дату рождения. Все отлично кроме даты. Выводит число 01.01.0001. 00 00 00. Почему? как это исправить как выводить выбранную дату и без времени?????
вот так код выглядит сейчас, где косячу? где не понимаю??? почему так происходит вот никак не дается мне эта дата
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 List<Person> lst = new List<Person>();
        public class Person
        {
            public string Famil;
            public string Imja;
            public string Otch;
            public string Pol;
            public DateTime d1;
          
        }
 protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["l"] == null)
                Session["l"] = lst;
            lst = (List<Person>)Session["l"];
        }
 protected void Button1_Click(object sender, EventArgs e)
        {
            DateTime d1 = DateTime.Now;
            string str_dt = d1.ToString(); //работает
            string inp_dt = Convert.ToDateTime(d1).ToString("mm.dd.yyyy");
            DateTime d2 = DateTime.ParseExact(inp_dt, "mm.dd.yyyy", null);
 string Tex1 = TextBox1.Text;
            Person p = new Person();
            p.Famil = Tex1;
            //lst.Add(p);
            string Tex2 = TextBox2.Text;
            //Person z = new Person();
            p.Imja = Tex2;
            // lst.Add(z);
            string Tex3 = TextBox3.Text;
            // Person o = new Person();
            p.Otch = Tex3;
p.Pol = "-";
            if (RadioButton1.Checked)
            {
                p.Pol = RadioButton1.Text;
            }
            if (RadioButton2.Checked)
            {
                p.Pol = RadioButton2.Text;
            }
 lst.Add(p);
            RadioButton1.Checked = false;
            RadioButton2.Checked = false;
            Show();
        }
 protected void Button2_Click(object sender, EventArgs e)
        {
            Show();
        }
 
        private void Show()
        {
 if (lst.Count() == 0)
            {
               
                label2.Text = "0 элементов";
            }
 HtmlTableRow tr = new HtmlTableRow();
            HtmlTableCell number = new HtmlTableCell();
            number.InnerHtml = "#";
            tr.Cells.Add(number);
            HtmlTableCell surname = new HtmlTableCell();
            surname.InnerHtml = "Фамилия";
            tr.Cells.Add(surname);
            HtmlTableCell name = new HtmlTableCell();
            name.InnerHtml = "Имя";
            tr.Cells.Add(name);
            HtmlTableCell patronymic = new HtmlTableCell();
            patronymic.InnerHtml = "Отчество";
            tr.Cells.Add(patronymic);
HtmlTableCell dtr = new HtmlTableCell();
            dtr.InnerHtml = "Дата рождения";
            tr.Cells.Add(dtr);
            HtmlTableCell pol = new HtmlTableCell();
            pol.InnerHtml = "Пол";
            tr.Cells.Add(pol);
            tbl1.Rows.Add(tr);
            int count = 0;
foreach (Person p in lst) 
 {
                HtmlTableRow tr2 = new HtmlTableRow();
                HtmlTableCell number2 = new HtmlTableCell();
                count = count + 1;
                number2.InnerHtml = count.ToString();
                tr2.Cells.Add(number2);
                HtmlTableCell surname2 = new HtmlTableCell();
                surname2.InnerHtml = p.Famil.ToString();
                tr2.Cells.Add(surname2);
                HtmlTableCell name2 = new HtmlTableCell();
                name2.InnerHtml = p.Imja.ToString();
                tr2.Cells.Add(name2);
                HtmlTableCell patronymic2 = new HtmlTableCell();
                patronymic2.InnerHtml = p.Otch.ToString();
                tr2.Cells.Add(patronymic2);
 HtmlTableCell dtr2 = new HtmlTableCell();
                dtr2.InnerHtml = p.d1.ToString(); //format
                tr2.Cells.Add(dtr2);
                HtmlTableCell pol2 = new HtmlTableCell();
                pol2.InnerHtml = p.Pol.ToString();
                tr2.Cells.Add(pol2);
 
                tbl1.Rows.Add(tr2);
                DropDownList1.Items.Add(p.Famil + " " + p.Imja + " " + p.Otch);
            }
Миниатюры
Строка не распознана как действительное значение DateTime   Строка не распознана как действительное значение DateTime  
0
Эксперт .NET
17678 / 12864 / 3365
Регистрация: 17.09.2011
Сообщений: 21,132
13.09.2018, 15:32 5
Цитата Сообщение от 1nsan1ty Посмотреть сообщение
C#
1
2
3
4
DateTime d1 = DateTime.Now;
string str_dt = d1.ToString(); //работает
string inp_dt = Convert.ToDateTime(d1).ToString("mm.dd.yyyy");
DateTime d2 = DateTime.ParseExact(inp_dt, "mm.dd.yyyy", null);
Здесь какие-то странные манипуляции.
Какого результата вы хотите ими добиться?
Зачем конвертировать дату в строку только для того, чтобы тут же обратно конвертировать эту строку в дату?

Цитата Сообщение от 1nsan1ty Посмотреть сообщение
Все отлично кроме даты. Выводит число 01.01.0001. 00 00 00. Почему?
Потому что в обработчике клика кнопки вы нигде не присваиваете значение полю d1 вашего экземпляра, вот оно и остается значением для DateTime по умолчанию.
1
0 / 0 / 0
Регистрация: 18.08.2018
Сообщений: 34
13.09.2018, 16:00  [ТС] 6
спасибо, все уже разобрался, вы очень мне помогли!
0
13.09.2018, 16:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2018, 16:00
Помогаю со студенческими работами здесь

Непонятное исключение "Строка не распознана как действительное значение DateTime"
Есть файл timeTable.txt 02 00 05 00 08 00 10 00 12 00 14 00 15 00 16 00 17 00

Не загружаются данные из SQLite c ошибкой "Строка не распознана как действительное значение DateTime" Entity Framework
Добрый день, подскажите пожалуйста: Имеется проект C# приложение windows form с entity framework...

Строка не распознана как действительное значение DataTime
Добрый вечер. При попытке заполнить табличку DataTable: DataTable table = new DataTable();...

Строка не распознается как действительное значение DateTime
con = new SQLiteConnection(&quot;Data Source=&quot; + dbFile); con.Open(); com =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru