Sprawdzanie czasu w polskiej strefie czasowej.

Odpowiedz Nowy wątek
2020-09-16 09:18

Rejestracja: 7 lat temu

Ostatnio: 2 dni temu

0

Witam,
Potrzebuję zapisać warunek, w którym badam czy godzina jest już np. 15ta, ponieważ o tej godzinie w sieci wykonywane są pewne działania na polskiej stronie www, a dopiero po tej godzinie mam dostęp do pewnych informacji. Problem w tym, że mojego programu mogą używać osoby w innych strefach czasowy i jak np. zapiszę tj. poniżej, to przecież u nich 15ta może nie być 15tą.
W jaki sposób wymusić sprawdzanie czasu, ale w polskiej strefie czasowej?

DateTime now = DateTime.Now;
if ( now.Hour != 15 ) return State.Busy;

Pozostało 580 znaków

2020-09-16 09:42

Rejestracja: 1 rok temu

Ostatnio: 35 minut temu

2020-09-16 09:46

Rejestracja: 16 lat temu

Ostatnio: 1 godzina temu

1

DateTime.UtcNow

Ale jak jest źle ustawiony zegar w komputerze, to co zrobisz?

Pozostało 580 znaków

2020-09-16 09:52
Moderator Kariera

Rejestracja: 2 lata temu

Ostatnio: 1 minuta temu

Lokalizacja: Poznań

1

ponieważ o tej godzinie w sieci wykonywane są pewne działania na polskiej stronie www

A nie możesz na tej stronie (oczywiście - jeśli to jest Twoja, albo masz jakiś wpływ na jej zawartość) wystawić jakiegoś checkpointa, który będzie informował klientów, czy zadany czas już minął i czy można działać? Coś na zasadzie http://strona.pl/canProceedNow, które zwróci jakiegoś JSON'a czy w inny sposób (chociażby wyplucie samego echo('TAK')) przekaże informację, że serwer jest już gotowy do działania? A potem jedynie w swojej aplikacji będziesz się w chwili, kiedy ma być wykonane jakieś zadanie, łączyć się z tą stroną i sprawdzisz, czy już można jechać dalej, czy trzeba poczekać.

To rozwiązanie ma także taki plus, że zabezpiecza przed sytuacją podaną przez @Azarien, czyli przed błędnym ustawieniem zegara w kompie. Chociaż przed tym można się zabezpieczyć także poprzez bezpośrednie pobranie czasu gdzieś z netu, z jakiegoś serwera NTP albo chociażby "zwykłego" serwera, co do którego wiesz, że ma poprawnie ustawioną godzinę.


Naczelny forumowy hejter Apple

That game of life is hard to play, I'm gonna lose it anyway
The losing card I'll someday lay, So this is all I have to say

Pozostało 580 znaków

2020-09-16 10:49

Rejestracja: 7 lat temu

Ostatnio: 2 dni temu

0
boska_cebula napisał(a):

https://www.c-sharpcorner.com/blogs/get-any-date-and-time-as-per-time-zone-in-c-sharp oczywiście szukałeś

             TimeZoneInfo Central_European_Time = TimeZoneInfo.FindSystemTimeZoneById("Central European Standard Time");
            DateTime dateTime_CentralEuropean = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, Central_European_Time);
            Debug.WriteLine("Central_European_Time: " + dateTime_CentralEuropean);

Dziękuję kolego :)

Pozostało 580 znaków

Odpowiedz

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