jak ustawic zmienna DateTime żeby przetrzymywala tylko miesiąc i rok

Odpowiedz Nowy wątek
2020-02-13 11:58

Rejestracja: 5 lat temu

Ostatnio: 4 dni temu

0

Witam
Mam zmienna datazadania ktora jest DateTime i w bazie tez jest DateTime , jak zrobic zeby po wyciagnieciu calej daty przechowywac w niej tylko miesiac i rok ?

praca.DataZadania = Convert.ToDateTime(rdr.GetString(3));

Hej! Twój post prawdopodobnie zawiera niesformatowany kod. Użyj znaczników ``` aby oznaczyć, co jest kodem, będzie łatwiej czytać. (jestem botem, ta akcja została wykonana automatycznie, prawdopodobieństwo 0.9998582) - Tasmanian Devil 2020-02-13 12:01

Pozostało 580 znaków

2020-02-13 13:52
Moderator

Rejestracja: 11 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Wrocław

0

Ale w jakim widoku?
Pokaż kod, który wyświetla praca.DataZadania. Tutaj próbujesz to jakoś nadpisać, ale to nie ma sensu, ani związku z widokiem.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2020-02-13 13:59

Rejestracja: 5 lat temu

Ostatnio: 4 dni temu

0

powinna być string w tylko w bazie, tylko w kodzie ,czy w bazie i w programie ?

Pozostało 580 znaków

2020-02-13 14:13

Rejestracja: 1 rok temu

Ostatnio: 5 minut temu

0

Zmień ten typ DateTime na string i po problemie

Pozostało 580 znaków

2020-02-13 14:29
Moderator

Rejestracja: 11 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Wrocław

2

Jak dla mnie, to w bazie i w kodzie powinno być DateTime, a string tylko podczas wyświetlania.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2020-02-13 16:48

Rejestracja: 3 lata temu

Ostatnio: 12 godzin temu

0

Widzę że debata trwa, mimo że prawidłowe rozwiązanie zostało już dawno pokazane :)


Keep calm and blame frontend
Ale nie zostało zrozumiane, niestety. - jacek.placek 2020-02-13 17:47

Pozostało 580 znaków

2020-02-13 17:51

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

2

Uwaga. poniższe rozwiązanie nie powinno być stosowane :) Grozi martwicą mózgu w przypadku nadużywania.

Dodaj do klasy praca

public string DataZadaniaString 
{
  get
  {
    return DataZadania.ToString("YYYY-MM");
  }
}

I wyświetlaj w oknie DataZadaniaString.

Bez klamerek byłoby ładniej, ale niech Ci będzie. - somekind 2020-02-13 18:02

Pozostało 580 znaków

2020-02-13 23:35

Rejestracja: 3 lata temu

Ostatnio: 9 godzin temu

1
public static class DateTimeExtensions
{
    public static string OneFormatToRuleThemAll(this DateTime dt)
    {
        return dt.ToString("yyyy-MM-dd");
    }

    public static string OneFormatToRuleThemAllWithHours(this DateTime dt)
    {
        return dt.ToString("yyyy-MM-dd HH:mm");
    }
}

aby być konsekwentnym

edytowany 4x, ostatnio: WeiXiao, 2020-02-13 23:37
Ale po co? - somekind 2020-02-14 00:19
@somekind: po co być konsekwentnym? czy po co zarządzać formatem daty z jednego miejsca? - WeiXiao 2020-02-14 00:21
Po co w ogóle zarządzać formatem daty w kontekście tego wątku. - somekind 2020-02-14 00:40
@somekind: to tylko rozwinięcie poprzednich odpowiedzi - WeiXiao 2020-02-14 00:41

Pozostało 580 znaków

2020-02-15 14:56

Rejestracja: 6 miesięcy temu

Ostatnio: 3 godziny temu

1

Jeżeli chcesz zmieniać format danych tylko przy wyświetlaniu WPF udostępnia konwertery. Implementuje się je za pomocą interfejsu IValueConverter lub IMultiValueConverter (to pierwsze jest dla CIebie).

https://www.wpf-tutorial.com/[...]version-with-ivalueconverter/

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

w parametrze "value" znajdzie się obiekt do którego następuje powiązanie (binding)
Jeżeli bindujesz do typu DateTime w TextBlocku wyświetli się DateTime.ToString().
Z pomocą konwertera możesz wykonać operacje i zwrócić tylko miesiąc i dzień lub co tylko zechcesz

Pozostało 580 znaków

Odpowiedz

2 użytkowników online, w tym zalogowanych: 0, gości: 0, botów: 2

Robot: CCBot (2x)