W języku C# jeśli chcę analizować datetime, ale czasami po prostu mieć albo datę, a nie składnika czasu lub na czas, ale komponent czasowy, w jaki sposób mogę to zrobić? Zwykle, gdy pominiesz komponent czasu, automatycznie przyjmuje on, że godzina jest godzina 12:00. Ale nie chcę tego. Jeśli brakuje komponentu czasu, po prostu chcę, aby DateTime zapisywał tylko datę i pozostawił komponent czasu wyłączony.DateTime W języku C#
Odpowiedz
Wartość DateTime wewnętrznie jest tylko UInt64
(ulong
w C#), która przechowuje liczbę kleszczy ponieważ niektóre daty w przeszłości, więc czy ci się to podoba czy nie, składnik czas zawsze będzie tam.
DateTime definicji przechowuje datę i czas, tak, że nie można po prostu stanowią jeden z nich bez reprezentujący drugą. Jeśli chcesz tylko datę (lub tylko czas), przeanalizuj potrzebne informacje i odrzuć resztę.
To nie jest możliwe, aby mieć DateTime
bez składnika czasu. Można zapisać flagę boolowską wraz z nią w pliku struct
, aby przechowywać dane o istnieniu tego komponentu. Jednak nie ma możliwości użycia automatycznej procedury analizowania w celu rozróżnienia ciągu znaków DateTime
z czasem określonym jako 12:00 PM
i nieistniejącym.
To jest to, czego potrzebuje. –
czy to naprawdę błędy, które zawsze można utworzyć klasy otoki, które można ukryć odcinki czasowe klasy datetime.
Nie będziesz miał komponentu czasu bez względu na wszystko. Najlepsze, co możesz zrobić, to uzyskać dostęp do właściwości Date na obiekcie DateTime, jeśli naprawdę musisz.
http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx
Właściwość Date to wciąż tylko DateTime z komponentem czasu ustawionym na północ. – LukeH
Można mieć klasę, która przechowuje DateTime i określa, czy kiedykolwiek był czas ustawiony lub jeśli po prostu data została ustalona i zwracają wartości odpowiednio.
Obiekt DateTime zawsze przechowuje datę + czas, a nie tylko jeden. Zawsze możesz pracować tylko z częścią daty, tzn. Używać tylko takich właściwości, jak Rok, Miesiąc, DzieńOfWeek. Ale pod spodem będzie trochę czasu.
Jeśli trzeba tylko wyświetlaczu niektórych części, wystarczy użyć dowolnego ciągi formatu (przykłady są dla "en-us" kultury):
DateTime.Now.ToString("d"); // 5/26/2009
DateTime.Now.ToString("t"); // 4:56 PM
Kompletny referencyjny: http://msdn.microsoft.com/en-us/library/az4se3k1.aspx
użyj
DateTime date = new DateTime();
date = DateTime.Parse("1/1/2001");
aby ustawić datę, a następnie użyć
date.ToShortDateString();
lub
date.Year;
date.Month;
date.Day;
aby uzyskać to, czego potrzebują. Mam nadzieję, że pomaga!
Jak wspomniano wcześniej DateTime zawsze będzie mieć datę i razem część niej, jeśli chcesz tylko jedna część wykorzystać sposób opisany przez innych
DateTime date = DateTime.Parse("2009-11-30);
date.Year; = 2009
date.Month; = 11
date.Day; = 30
date.Hour; = 0
and so on
Rzecz musi mieć świadomość, że wszystko te metody zwrócą tylko liczbę całkowitą.
Jeśli chcesz poznać wszystkie możliwe sposoby analizowania ciągu znaków, John Sheehan przygotował świetną Cheat Sheet wit all possible ways to parse and manipulate dates i inne ciągi w tym zakresie.
Bardzo niebezpieczne jest założenie, że część daty w postaci DateTime
jest koniecznie datą, której się spodziewasz. Jak wskazano, DateTime
zawsze uwzględnia i uwzględnia aspekt czasu, nawet gdy go nie widzisz.
Jest to duży problem, gdy dane są przechowywane w różnych strefach czasowych (a zwłaszcza jeśli nie jest zachowana wiedza o tym przesunięciu, ponieważ zakłada się, że to, co jest przechowywane, jest datą, a nie datą z -czas).
Możesz przechowywać datę urodzin jako "01/01/2000 00:00:00" w okresie letnim, która następnie jest przechowywana w UCT jako "31/12/1999 23:00:00". Kiedy później przeczytasz tę datę urodzenia, porcja jest teraz dzień wcześniej.
Najlepiej stworzyć własny typ. Dziwne, że Microsoft nie uważał, że warto mieć typ Date
.
- 1. Jak porównać DateTime w języku C#?
- 2. Tworzenie obiektu DateTime w języku C#Tworzenie kodu DataTime w języku C#
- 3. Jak mogę uzyskać bieżący krótki format DateTime w języku C#?
- 4. W języku C#, jak przekonwertować typ danych TimeSpan na DateTime?
- 5. Datetime w C# dodaj dni
- 6. DateTime w VB.NET i C#
- 7. Parsowanie datetime C# do javascript datetime
- 8. Tydzień Roku C# Datetime
- 9. C#: zainicjować macierz DateTime
- 10. C++ DateTime klasa
- 11. `PROCESSENTRY32W` w języku C#?
- 12. Safehandle w języku C#
- 13. SetWindowsHookEx w języku C#
- 14. Jak wydrukować DateTime w formacie perskim w C#
- 15. Zastępowanie sekcji Data lub czas w obiekcie DateTime w języku C#
- 16. Najlepszy sposób tworzenia Midnight DateTime w C#
- 17. Jak skonstruować datetime ISO 8601 w C++?
- 18. Konwersja czasu do DateTime w C#
- 19. sposób sortowania kolekcji przy DateTime w C#
- 20. Jak uzyskać precyzyjne DateTime w C#
- 21. C# DateTime to String Issue
- 22. Problem z odczytaniem komórek Excel zawierających datetime w języku VBA
- 23. Jak przekonwertować `ctime` na` datetime` w języku Python?
- 24. Konwertuj obiekt datetime na łańcuch dat tylko w języku Python
- 25. Jak zrobić zajęcia w języku C#, które można przesyłać do DateTime?
- 26. Jak przekonwertować ciąg znaków na konkretny format DateTime w języku C#?
- 27. C# DateTime do "YYYYMMDDHHMMSS" format
- 28. Konwertuj ciąg do Datetime C#
- 29. Wywołanie biblioteki C++ w języku C#
- 30. Zapisywanie pliku dziennika w języku c/C++
+1, DateTime to naprawdę mnóstwo metod użytkowych owiniętych wokół wartości integralnej. –
Wewnętrzna wartość jest w rzeczywistości niepodpisana, ale ma niewielką różnicę jeśli chodzi o użycie. – Noldorin