Problem z formatem daty?

Odpowiedz Nowy wątek
2018-05-17 14:34
0

Witam

Mam aplikację WEB-ową (ASP.NET MVC + EntityFramework).

W trakcie pisania korzystałem z VisualStudio 2017 i LocalDB
utworzone formularze działały poprawnie, dane bez problemu były zapisywane do bazy.

po przeniesieniu aplikacji na serwer 2012R2 EN lokale ustawione na POLSKIE (data w systemie wyświetlana jest 2018-05-17)
oraz serwerem SQL 2017 Express (Instancja language English US, Server Collation Polish_CI_AS, Baza Default Language Polski, Collation POLISH_CI_AS).

Problem polega na tym że jak uruchomię stronę z poziomu VisualStudio (łaczac się do bazy na serwerze) jest wszystko OK, rekord jest zapisywany do bazy.
jeśli uruchomię stronę z poziomu przeglądarki łącząc się z IIS serwerem przy zapisie zawartości formularza do bazy otrzymuję błąd formatu daty jak w zał.

Data w formularzu wyświetlana jest w formacie 17.05.2018 13:58 błąd The value '17.05.2018 13:58' is not valid
data w tabeli jest przechowywana 2018-05-17 14:21:00.000.

Jak mogę rozwiązać ten problem i gdzie go szukać, w konf. serwera?
Czy z poziomu Modelu mogę wymusić format daty?
[DisplayName("Data opublikowania informacji")]
[DataType(DataType.Date)]
public DateTime ArtOpublikowanyOd { get; set; }
a może datę konwertować z poziomu widoku lub kontrolera?

Dodam tylko że w formularzu pole daty jest to Html.EditorFor+bootstrap-datepicker

        <div class="form-group">
            @Html.LabelFor(model => model.ArtOpublikowanyOd, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                <div class='input-group date' id='datetimepicker11'>
                    @Html.EditorFor(model => model.ArtOpublikowanyOd, new { htmlAttributes = new { @class = "form-control" } })
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-calendar"></span>
                    </span>
                </div>
                @Html.ValidationMessageFor(model => model.ArtOpublikowanyOd, "", new { @class = "text-danger" })
            </div>
        </div>

Dzięki z pomoc,
Pozdrawiam.

  • e1.PNG (0,02 MB) - ściągnięć: 23

Pozostało 580 znaków

2018-05-17 14:52
0

MI problem daty zawsze rozwiązywał taki atrybut w ViewModelu

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
edytowany 1x, ostatnio: szydlak, 2018-05-17 14:53
Czyli dla wygody programisty zgwałćmy język polski? - somekind 2018-05-17 17:24

Pozostało 580 znaków

2018-05-17 17:24
0
GAMMIS napisał(a):

po przeniesieniu aplikacji na serwer 2012R2 EN lokale ustawione na POLSKIE (data w systemie wyświetlana jest 2018-05-17)

Wtrącenie w nawiasie nie potwierdza tezy z właściwego zdania, bo to nie jest poprawna polska data. :)

Data w formularzu wyświetlana jest w formacie 17.05.2018 13:58 błąd The value '17.05.2018 13:58' is not valid

Czyli jest wyświetlana prawidłowo po polsku.

data w tabeli jest przechowywana 2018-05-17 14:21:00.000.

Nie jest tak przechowywana - w bazie jest to zapewne po prostu ośmiobajtowa liczba. Po prostu program, w którym oglądasz tabelę wyświetla datę zgodnie z ISO-8601.

Dodam tylko że w formularzu pole daty jest to Html.EditorFor+bootstrap-datepicker

Tak myślałem. Tu masz dokładny opis przyczyn Twojego problemu i sposoby jego rozwiązania:
http://commitandrun.pl/2016/0[...]strap-datepicker_i_ASPNETMVC/
http://commitandrun.pl/2016/0[...]osoft_zwalcza_polska_kulture/


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
Pokaż pozostałe 3 komentarze
Sam się przyznal, ze to blog jego mamy :) - jacek.placek 2018-05-17 22:22
Nie pisałem, że mojej. - somekind 2018-05-17 23:27
A to pewnie mamy Twojej mamy. - jacek.placek 2018-05-18 09:18
Co macie mojej mamy? Natychmiast oddajcie! - somekind 2018-05-18 17:14
Nic, dzień matki niedługo. Może jakieś fajne promocje będą na Helionie. Pamiętaj. - jacek.placek 2018-05-18 17:18

Pozostało 580 znaków

2018-05-17 20:02
1

Dzięki za pomoc

problem rozwiązałem dodaniem w pliku js linii ustawiającej format daty

format: 'YYYY.MM.DD HH:mm',
    $('#datetimepicker11').datetimepicker({
        locale: 'pl-PL',
        viewMode: 'years',
        daysOfWeekDisabled: [0],
        format: 'YYYY.MM.DD HH:mm',
    });

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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