2016-04-18 20 views
0

Ich verwende ASP.NET Webforms, um die Daten des Clients zu erhalten. Bis jetzt habe ich die IP-Adresse des Kunden und der Stadt & Land des Kunden herausgefunden. Ich versuche, eine Methode zum Abrufen der Zeitzone mithilfe der IP-Adresse oder des Landes- oder Stadtnamens zu finden. Ich habe gegoogelt und konnte keine passende Antwort finden, während jeder über das Einspritzen von Javascript spricht, um Zeitzone zu erhalten. Meine Frage ist: Gibt es eine Möglichkeit, Zeitzone des Clients zu finden? Wenn ja dann wie? `Ermitteln der Zeitzone des Clients mit C#

+0

Bitte nicht willkürlich Wörter in Fettdruck oder Code ohne Grund drehen - es macht es wirklich schwer zu lesen. –

+0

@Kritner Ich habe viele Artikel Stackoverflow gelesen, sie alle bitten, Javascript zu injizieren, aber ich möchte auf C# arbeiten. Entweder bittet es um Zeitzone von irgendeinem Link oder so etwas! – CodeIt

Antwort

0

Haben Sie versucht, mit der TimeZoneInfo Klasse Es stellt jede Zeitzone in der Welt.

https://msdn.microsoft.com/en-us/library/system.timezoneinfo(v=vs.110).aspx

+0

Nein, habe diese Klasse nicht ausprobiert. Ich werde es jetzt versuchen! – CodeIt

+0

Dies hilft nicht beim Erkennen der Zeitzone des Clients in einer Web-App. –

+0

@Lakiel Wade es hat nicht geholfen, wie meine Zeit ist 1:21 Uhr und es gibt 3:21 pm zurück – CodeIt

2

Es ist nicht möglich, dies auf eine zuverlässige Art und Weise zu tun, rein mit C#. Die HTTP-Spezifikation enthält keine Hinweise auf die Zeitzone des Clients.

Sie können erraten in der Zeitzone eines Clients mit IP-Geolocation, und es gibt viele kostenlose und kommerzielle Dienste, die Zeitzoneninformationen bereitstellen. Es gibt jedoch nur einen begrenzten Genauigkeitsgrad bei einem solchen Ansatz.

Auch mit JavaScript können die aktuellen Lösungen immer noch der Zeitzone des Clients erraten. In der ECMAScript Intl-API gibt es dafür Verbesserungen, die jedoch noch nicht von allen Browsern vollständig implementiert werden. See more here.

Schließlich, wenn Sie die Zeitzone des Clients von Ihrem Back-End-Code wissen müssen, ist das beste, was zu tun ist fragen Sie den Benutzer. Stellen Sie in Ihrer Anwendung einen Zeitzonen-Picker zur Verfügung.

Sie können auch this related answer nützlich finden.

+0

yeah, ich sah diese Artikel, aber sie waren sehr alte Threads, also dachte ich, es wieder zu fragen, vielleicht gibt es eine Weg Programmierer haben jetzt entdeckt :( – CodeIt

+0

gibt es eine Möglichkeit, wie wir Zeit vom Internet bekommen können durch die Bereitstellung der Stadt und des Landes? @Matt Johnson – CodeIt

+0

Ich bin sicher, es gibt viele Dienste, die solche Nachschlagewerke bieten. Versuchen Sie http: // ip-api Siehe auch diese Antwort: http://stackoverflow.com/a/16086964/634824 Beachten Sie, dass Sie in beiden Fällen eine IANA-Zeitzonen-ID erhalten. Um mit .NET zu verwenden, benötigen Sie [Noda Time] (http://nodatime.org) –

Verwandte Themen