Diskuze: DateTime odstranění času

C# .NET .NET (C# a Visual Basic) DateTime odstranění času American English version English version

Avatar
Majkel
Člen
Avatar
Majkel:

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
Redaktor
Avatar
Milan Křepelka:

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/…ary/az4se3k1(v=vs.110).aspx
https://msdn.microsoft.com/…ary/8kb3ddd4(v=vs.110).aspx

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

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
Odpovídá na Majkel
Petr Čech (czubehead):

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

(string)subKey.GetValue("InstallDate")
Nahoru Odpovědět 23.9.2015 18:11
Why so serious? -Joker
Avatar
Majkel
Člen
Avatar
Majkel:

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.