J'ai essayé de créer une fonction pour juger si les principaux stocks du monde sont l'heure d'été avec python

*Fixé

--2016.12.12
4. Correction de l'argument def dans le script qui était date = datetime.datetime.today ()
Si cela est laissé tel quel, la valeur par défaut est l'heure à laquelle def a été lu une fois. Parce que ça devient.

1. Motivation

SwitchIl est fastidieux de changer manuellement et de juger si les principales bourses du monde sont cet été. Peut-il être automatisé?
«J'essaie d'en savoir plus sur le fuseau horaire. -Bien que cela soit principalement expliqué dans [Python] Convert time zone, je me demande si vous pouvez en faire une fonction de vérification pour ne pas avoir à vous inquiéter à chaque fois.

2. Environnement

--python3.x (probablement 2.7 est ok)

3. Vérifiez la méthode.

4. Script

Vous pouvez le vérifier en intégrant le script suivant.

--calcdifftime: différence d'heure par rapport au fuseau horaire spécifié de l'heure spécifiée (Japon si non spécifié) Cela doit être nécessaire. --checkdst: vérifie si le fuseau horaire de la société de titres désignée est l'heure d'été à l'heure spécifiée (fuseau horaire spécifié (Japon si non spécifié))

Veuillez vous référer à 5. Vérification pour une utilisation spécifique.

import pytz ,datetime

#Ajoutez d'ici si nécessaire.
tzUTC = pytz.timezone("UTC")                  #Heure standard
tzNYC = pytz.timezone("America/New_York")     #Etats-Unis(New York)
tzTYO = pytz.timezone("Asia/Tokyo")           #Japon(Tokyo)
tzLON = pytz.timezone("Europe/London")        #Angleterre(Londres)
tzYTO = pytz.timezone("America/Toronto")      #Canada(Toronto)
tzSAO = pytz.timezone("America/Sao_Paulo")    #Brésil(Sao Paulo)
tzSYD = pytz.timezone("Australia/Sydney")     #Australie(Sydney)
tzFRA = pytz.timezone("Europe/Berlin")        #Allemagne(Francfort) *Francfort、ヘッセン州がなかったのでベルリン
#Jusque là

def calcdifftime(tz = tzNYC, date = -1,tzbase = -1):
        """
        [param]
        tz : checked pytz.timezone
        date:checked datetime
        tzbase:bassis pytz.timezone

        [return]
        float:different hours
        """
        if(date==-1):
                date =  datetime.datetime.today() 
        if(tzbase==-1):
                tzbase = tzTYO
        tabse   = tzbase.localize(date)
        tztime = tz.localize(date)
        diff = tabse - tztime
        diff_hours = diff.total_seconds()/3600
        return(diff_hours)

def checkdst(tz = tzNYC, date=-1,tzbase=-1):
        """
        [param]
        tz : checked pytz.timezone
        date:checked datetime
        tzbase:bassis pytz.timezone

        [return]
        bool: True:dst , False:std
        """
        if(date==-1):
                date =  datetime.datetime.today() 
        if(tzbase==-1):
                tzbase = tzTYO
        tbase = tzbase.localize(date)
        chgdate = tbase.astimezone(tz)
        #print(chgdate)
        if(chgdate.dst().seconds !=0):
                return(True)
        else:
                return(False)

5. Vérification

Pour le moment, nous vérifions les heures de début et de fin de l'heure d'été aux États-Unis (US) au Japon, heure et heure locale.

def tztest(t,tz,tzbase = -1):
        diff = calcdifftime(tz,t) #Décalage horaire avec le Japon
        if(tzbase ==  -1): #Lorsque tzbase n'est pas spécifié(Au Japon, heure)Test de fonctionnement
                if(checkdst(tz,t)):
                        st = "daylight saving time"
                else:
                        st = "standard time"
        elif(checkdst(tz,t,tzbase)): #Test lorsque tzbase est spécifié (pour l'heure locale de base)
                st = "daylight saving time"
        else:
                st = "standard time"
        if(tzbase == -1):
                tzbasename = tzTYO.zone
        else:
                tzbasename = tzbase.zone
        print("Check time ",t,tzbasename)
        print("tz name".ljust(20),"Time diff".ljust(10),"DST STD")
        print(tz.zone.ljust(20),str(diff).ljust(10),st)

print("Heure d'arrivée au Japon")
#Vérification de l'heure d'été aux États-Unis (États-Unis)
#Check time  2016-03-13 16:00:00 Asia/Tokyo
#tz name              Time diff  DST STD
#America/New_York     -13.0      daylight saving time
t = datetime.datetime(2016, 3, 13, 16, 0)
tztest(t,tzNYC)

#Contrôle normal US (US)
#Check time  2016-11-06 15:00:00 Asia/Tokyo
#tz name              Time diff  DST STD
#America/New_York     -14.0      standard time
t = datetime.datetime(2016, 11, 6, 15, 0)
tztest(t,tzNYC)

print("Vérifier à l'heure locale")
#Vérification de l'heure d'été aux États-Unis (États-Unis)
#Check time  2016-03-13 03:00:00 America/New_York
#tz name              Time diff  DST STD
#America/New_York     -13.0      daylight saving time
t = datetime.datetime(2016, 3, 13, 3, 0)
tztest(t,tzNYC,tzNYC)

#Contrôle normal US (US)
#Check time  2016-11-06 01:00:00 America/New_York
#tz name              Time diff  DST STD
#America/New_York     -14.0      standard time
t = datetime.datetime(2016, 11, 6, 1, 0)
tztest(t,tzNYC,tzNYC)

6. Précautions pour le contrôle de l'heure d'été

―― L'heure d'été aux États-Unis (US) changera à 2h00 le 13 mars 2016, alors qu'en est-il de l'heure d'été d'ici? Cependant, veuillez noter qu'il sera possible de juger que c'est l'heure d'été à 3h00 (une heure à l'avance) le 13 mars 2016, date à laquelle elle a réellement commencé.
Il reviendra à l'heure standard à 2h00 le 6 novembre 2016, mais il semble qu'il puisse être jugé comme heure d'été jusqu'à 1h00 le 6 novembre 2016 (une heure en arrière) lorsqu'il est revenu à la norme. (13 heures le 6 novembre 2016 est considérée comme l'heure normale)
―― Étant donné que l'Allemagne et d'autres pays sont similaires, il semble que vous deviez faire attention au temps de vérification.
―― Strictement parlant, il y a des heures étranges (non vérifiables), mais les heures de début et de fin de l'heure d'été sont minuit le dimanche et le marché est fermé, vous n'aurez donc peut-être pas à vous en soucier. Cependant, soyez prudent lorsque vous vérifiez une fois par semaine (comme le dimanche).

7. Autre

«Cette fois, j'ai évoqué le nom d'une certaine ville d'une société de valeurs mobilières dans chaque pays. Que devez-vous faire de l'abréviation? Approprié? ?? J'ai utilisé l'abréviation de la ville locale, mais à ce moment-là, j'ai fait référence au code ville / aéroport, qui peut être moins cher à utiliser. J'y fais allusion.

8. Sites auxquels j'ai principalement fait référence cette fois

Recommended Posts

J'ai essayé de créer une fonction pour juger si les principaux stocks du monde sont l'heure d'été avec python
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de décrire le trafic en temps réel avec WebSocket
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de créer une fonction de similitude d'image avec Python + OpenCV
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Je veux faire un jeu avec Python
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
[Analyse des brevets] J'ai essayé de créer une carte des brevets avec Python sans dépenser d'argent
[Python] Smasher a essayé de faire du processus de chargement de la vidéo une fonction à l'aide d'un générateur
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
[Python & SQLite] J'ai analysé la valeur attendue d'une course avec des chevaux dans la fourchette 1x win ①
Introduction à la création d'IA avec Python! Partie 2 J'ai essayé de prédire le prix de l'immobilier dans la ville de Boston avec un réseau neuronal
J'ai essayé d'entraîner la fonction péché avec chainer
J'ai essayé de représenter graphiquement les packages installés en Python
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé d'implémenter un pseudo pachislot en Python
Je veux travailler avec un robot en python.
J'ai essayé de résoudre le problème avec Python Vol.1
[LPIC 101] J'ai essayé de résumer les options de commande qui sont faciles à faire une erreur
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
Comment tester unitaire une fonction contenant l'heure actuelle à l'aide de Freezegun en Python
Je voulais créer une dll pour utiliser une fonction écrite en C à partir de Python dans ctypes, mais j'ai eu du mal
J'ai créé une fonction pour récupérer les données de la colonne de base de données par colonne en utilisant sql avec sqlite3 de python [sqlite3, sql, pandas]
(Python: OpenCV) J'ai essayé de générer une valeur indiquant la distance entre les régions tout en binarisant la vidéo en temps réel.
J'ai essayé de trouver l'entropie de l'image avec python
Django super introduction par les débutants Python! Partie 6 J'ai essayé d'implémenter la fonction de connexion
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé de résumer ce que l'homme fort de python fait dans le quartier des professionnels de la compétition
J'ai essayé de créer diverses "données factices" avec Python faker
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
[1 hour challenge] J'ai essayé de créer un site de bonne aventure qui soit trop adapté à Python
J'ai essayé de résoudre le problème de F02 comment écrire en temps réel hors ligne avec Python
J'ai créé un package pour filtrer les séries chronologiques avec python
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python
J'ai essayé "Comment obtenir une méthode décorée en Python"
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé de créer un générateur qui génère une classe conteneur C # à partir de CSV avec Python
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter