NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: DateTime odstranění času

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Majkel
Člen
Avatar
Majkel:23.9.2015 14:52

Ahoj, načítám si z registru údaj o datu a parsuju na DateTime:

DateTime.ParseExact((string)subKey.GetValue("InstallDate"), "yyyyMMdd", CultureInfo.InvariantCulture);

Výsledek v databázi je pak: 2015-09-16 00:00:00.000.
A já teď nemůžu přijít na to, jak se zbavit času za datem, který tam nechci.

 
Odpovědět
23.9.2015 14:52
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:23.9.2015 15:39

Otázka spíš zní proč by ti to tam mělo vadit?

Následné odpovědi by mohly znít

  • Použij datový sloupec pro Date místo DateTime
  • Zobrazuj DateTime v nějakém "custom" formátu kde bude jenom čas

https://msdn.microsoft.com/…vs.110).aspx
https://msdn.microsoft.com/…vs.110).aspx

 
Nahoru Odpovědět
23.9.2015 15:39
Avatar
Majkel
Člen
Avatar
Majkel:23.9.2015 16:25

Vadí mi tam, protože se mě pak zobrazuje v MVC aplikaci, kde ho nechci. Problém je, že když chci na ten naparsovaný DateTime použít například metodu "ToShortDateS­tring()", tak mě to hlásí, že nelze konvertovat string na System.DateTime.

DateTime a = DateTime.ParseExact((string)subKey.GetValue("InstallDate"), "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime aa = Convert.ToDateTime(a);
appInstallDate = aa.ToShortDateString();

I když to zapíšu takto krkolomně, tak mi to stejně hlásí, že nelze konvertovat string na DateTime. appInstallDate je rovněž datového typu DateTime.

Editováno 23.9.2015 16:26
 
Nahoru Odpovědět
23.9.2015 16:25
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Majkel
Petr Čech:23.9.2015 18:11

A jak vypadá string, který chceš parsovat? Myslím tohle:

(string)subKey.GetValue("InstallDate")
Nahoru Odpovědět
23.9.2015 18:11
the cake is a lie
Avatar
Majkel
Člen
Avatar
Odpovídá na Petr Čech
Majkel:23.9.2015 18:13
20150923
 
Nahoru Odpovědět
23.9.2015 18:13
Avatar
Majkel
Člen
Avatar
Majkel:23.9.2015 18:26

Tak jsem to nakonec vyřešil tak, že jsem změnil datový typ "appInstallDate" z "DateTime" na "String".

DateTime date = DateTime.ParseExact((string)subKey.GetValue("InstallDate"), "yyyyMMdd", CultureInfo.InvariantCulture);
appInstallDate = date.ToShortDateString();

Výsledek: 16. 9. 2015.
Ale pořád nechápu, proč to předtím nešlo.

 
Nahoru Odpovědět
23.9.2015 18:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.