Pobieram dane z iSeries, gdzie znajdują się oddzielne pola daty i godziny. Chcę dołączyć do nich w polu DateTime w moim projekcie C#. Nie widzę sposobu, aby dodać trochę czasu do pola DateTime. Jak zasugerowałbyś wykonanie tego?Dołącz do daty i czasu do daty Czas w C#
Odpowiedz
W jaki sposób są przechowywane? Zakładając, że część z datą jest przechowywana jako DateTime
o północy danego dnia, a jest to TimeSpan
, możesz po prostu ją dodać.
DateTime date = ...;
TimeSpan time = ...;
DateTime result = date + time;
Możesz łatwo skonstruować TimeSpan ze swojego pola "time".
Gdy trzeba, że po prostu zrobić:
TimeSpan time = GetTimeFieldData();
dateField = dateField.Add(time);
Można to zrobić dość łatwo:
DateTime dateOnly;
DateTime timeOnly;
...
DateTime combined = dateOnly.Date.Add(timeOnly.TimeOfDay);
TimeOfDay
zwraca TimeSpan
, które następnie dodać do tej pory.
Edytuj (dzięki komentarzom poniżej) - aby być bezpiecznym, użyj dateOnly.Date
, aby zapewnić tylko część daty.
Jedna uwaga dla widza tutaj musisz się upewnić, że 'DateTime dateOnly' zawiera tylko w przeciwnym razie, z wystarczająco dużym TimeSpanem, kiedy wykonasz 'Add', zwiększysz dzień o 1! – Coops
@CodeBlend ma rację, przydarzyło mi się to. Najlepszym sposobem na pokrycie siebie jest wykonanie: 'DateTime combined = dateOnly.Date.Add (timeOnly.TimeOfDay);' –
Dobry połów, @RodolfoDeLosSantos! Wysłałem prośbę o zaktualizowanie rozwiązania, aby pasowało do Twojej sugestii. –
Datetime date = new DateTime(Date1.Year, Date1.Month, Date1.Day, Time1.Hour, Time1.Minute, Time1.Second);
Nie możesz po prostu sformatować części daty i czasu jako oddzielnych ciągów, a następnie połączyć je razem? Następnie możesz sparsować ciąg do obiektu DateTime.
Niezbyt wydajne. – Lazlo
Pamiętaj, że dodanie czasu do daty nie jest tutaj Twoim największym problemem. Jak wspomniał o @Reed Copsey, po prostu tworzysz DateTime od daty, a następnie .Add
czasu.
Należy jednak upewnić się, że data i godzina systemu iSeries (prawdopodobnie czas uniksowy) są w tej samej reprezentacji co reprezentacja .Net. Dlatego najprawdopodobniej trzeba go przekonwertować, dodając go również do DateTime 1 stycznia 1970 roku.
Możesz dodać TimeSpan
do DateTime
i napisać coś takiego.
// inside consuming function
ISeriesObject obj = getMyObject();
DateTime dt = getDate(obj) + getTime(obj);
private DateTime getDate(ISeriesObject obj)
{
//return a DateTime
}
private TimeSpan getTime(ISeriesObject obj)
{
//return a TimeSpan
}
ten powinien zrobić:
var output = date.Date + time.TimeOfDay;
lub
var output = new DateTime(date.Year, date.Month, date.Day,
time.Hour, time.Minute, time.Second);
przypuszczać, że obie zmienne date
i time
są zarówno od typu DateTime
- 1. Znacznik czasu do daty ciągów
- 2. Format daty i czasu
- 3. Pobierz czas z ciągu daty/czasu
- 4. JavaScript ustaw czas ciąg do obiektu daty
- 5. Selektor daty daty - ustawienie daty i czasu otwarcia
- 6. Konwersja Epoki sekund do daty i formatu czasu w Javie
- 7. Konwersja dwie kolumny daty i czasu danych do jednego
- 8. Ustaw domyślny format daty i czasu C#
- 9. Daty do czasu trwania w Pandach
- 10. Wydawanie daty i czasu w C++ przy użyciu std :: chrono
- 11. Dzielenie timestamp kolumna do daty i czasu oddzielnych kolumnach
- 12. Bootstrap selektor daty i czasu
- 13. Angularjs: znacznik czasu do sformatowanego czasu UTC z pomocnikiem daty
- 14. Wiąz: znacznik czasu dekodera Json do daty
- 15. Chcę tylko część czasu obiektu daty i czasu w R
- 16. Jaki jest format daty/czasu?
- 17. Pole daty i czasu formatowania KendoUI
- 18. Własny ciąg daty i czasu od milisekund
- 19. Moduł Pythona do zmiany daty i czasu systemu
- 20. Fabric format dziennika do daty i czasu wyświetlania
- 21. Pozbądź się daty i zatrzymaj czas.
- 22. Jak porównać dwie daty (tylko daty, nie czas) w kakao?
- 23. Sposób formatowania łańcucha daty i czasu w C++
- 24. Czy istnieje standardowa klasa daty/czasu w C++?
- 25. TSQL połączyć pola daty i pole czasu
- 26. jak format daty atom czas
- 27. Uzyskaj czas od ciągu daty
- 28. Moment.js Dołącz tekst w środku formatu daty
- 29. Sklep Daty czasu UTC w bazie danych
- 30. Epoka od czasu do daty na ograniczonym osadzonym urządzeniu
Myślę, że ten będzie działał najlepiej dla mnie w tej sprawie. Dzięki! –
to będzie działać tylko wtedy, gdy zmienna daty ma część czasu 00:00:00, w przeciwnym razie zmienna czasowa zostanie dodana do daty i będzie to nieoczekiwany wynik. – batmaci
@batmaci Tak, jest to wyraźnie określone w odpowiedzi. –