Maison  >  Article  >  développement back-end  >  Analyser les cotations boursières à l'aide de datetime et supprimer le temps écoulé

Analyser les cotations boursières à l'aide de datetime et supprimer le temps écoulé

WBOY
WBOYavant
2024-02-09 22:20:35388parcourir

Analyser les cotations boursières à laide de datetime et supprimer le temps écoulé

L'éditeur php Xigua vous présentera aujourd'hui comment utiliser la date et l'heure et supprimer le temps écoulé pour analyser les cotations boursières. En bourse, obtenir et analyser les cotations boursières en temps réel est une compétence très importante. En utilisant la fonction datetime, nous pouvons obtenir la date et l'heure actuelles, puis calculer l'heure de mise à jour de la cotation boursière en supprimant le temps écoulé. De cette manière, nous pouvons suivre l’évolution des cours des actions en temps réel et prendre les décisions appropriées. Ensuite, apprenons les étapes spécifiques !

Contenu de la question

Je souhaite obtenir la méthode de ticker.C 格式的 string (通过网络)获取日期时间并将其解析为 Time 对象。 ticker.C 看起来像 2023-01-03 17:24:13.986722973 +0100 CET m=+1.002332450。它可能必须删除 m=+1.002332450 经过的时间,因为我没有看到将其保留在 Time objet.

De plus, existe-t-il un moyen d'obtenir la chaîne de format de l'objet Time ? Semblable à mytime.GetFormat()

Solution de contournement

Le format de stringer pour le temps est documenté ici, https://pkg. go.dev/[email protected]#time.string:

String renvoie l'heure formatée à l'aide de la chaîne de format

"2006-01-02 15:04:05.999999999 -0700 mst"

Si l'heure a une lecture d'horloge monotone, la chaîne renvoyée inclut le dernier champ "m=±" où valeur est la lecture d'horloge monotone formatée en secondes décimales.

La chaîne renvoyée est utilisée pour le débogage ; pour une représentation sérialisée stable, utilisez t.marshaltext, t.marshalbinary ou t.format avec une chaîne de format explicite.

Cela indique que vous ne devez pas essayer d'utiliser la valeur et plutôt vous fier à une chaîne correctement organisée (ou formatée).

Non mentionné/suggéré, time.marshaljson est une option :

marshaljson implémente l'interface json.marshaler. L'heure est une chaîne entre guillemets au format rfc 3339, avec une précision inférieure à la seconde ajoutée si elle est présente.

L'expéditeur et le destinataire n'ont pas besoin d'effectuer de travail particulier pour encoder la valeur time.time en json, puis la décoder à nouveau :

type wiretick struct {
    tick time.time `json:"tick"`
}

Voici un petit exemple utilisant cette structure pour encoder et décoder un symbole boursier sur une ligne, https://go.dev/play/p/fx73q8-kvfa, qui produit le résultat suivant :

sent json-encoded tick on wire: {"tick":"2009-11-10t23:00:01z"}
received tick from wire:        {2009-11-10 23:00:01 +0000 utc}
sent json-encoded tick on wire: {"tick":"2009-11-10t23:00:02z"}
received tick from wire:        {2009-11-10 23:00:02 +0000 utc}
...

Pouvez-vous modifier la valeur envoyée par fil, ou demander à quelqu'un d'autre de la modifier pour la rendre correcte ?

Sinon, cela devrait faire :

const stringerlayout = "2006-01-02 15:04:05.999999999 -0700 mst"

timestr := "2009-11-10 23:00:10 +0000 utc m=+10.000000001"
tickstr := timestr[:strings.index(timestr, "m=")-1]
tick, _ := time.parse(stringerlayout, tickstr)

fmt.printf("received from wire: \t %q\n", timestr)
fmt.printf("chopped off monotonic: \t %q\n", tickstr)
fmt.printf("tick is: \t\t %v\n", tick)
Received from wire:      "2009-11-10 23:00:10 +0000 UTC m=+10.000000001"
Chopped off monotonic:   "2009-11-10 23:00:10 +0000 UTC"
Tick is:                 2009-11-10 23:00:10 +0000 UTC

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer