--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.
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.
--python3.x (probablement 2.7 est ok)
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)
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)
―― 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).
«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.
Recommended Posts