Home > Backend Development > Golang > Parse stock quotes using datetime and delete elapsed time

Parse stock quotes using datetime and delete elapsed time

WBOY
Release: 2024-02-09 22:20:35
forward
418 people have browsed it

Parse stock quotes using datetime and delete elapsed time

php editor Xigua today will introduce to you how to use date and time and delete elapsed time to analyze stock quotes. In the stock market, obtaining and analyzing stock quotes in real time is a very important skill. By using the datetime function, we can get the current date and time and then calculate the update time of the stock quote by deleting the elapsed time. In this way, we can track changes in stock prices in real time and make appropriate decisions. Next, let’s learn about the specific steps!

Question content

I want to get the datetime from a string (over the network) in ticker.C format and parse it into Time Object. ticker.C looks like 2023-01-03 17:24:13.986722973 0100 CET m= 1.002332450. It may have to remove the m= 1.002332450 elapsed time since I don't see a way to keep it in the Time object.

Also, is there a way to get the format string from the Time object? Similar to mytime.GetFormat()

Workaround

The stringer format of time is documented here, https://pkg. go.dev/[email protected]#time.string:

String returns the time formatted using the format string

"2006-01-02 15:04:05.999999999 -0700 mst"
Copy after login

If the time has a monotonic clock reading, the returned string includes the last field "m=±", where value is the monotonic clock reading formatted as decimal seconds.

The returned string is used for debugging; for a stable serialized representation, use t.marshaltext, t.marshalbinary, or t.format with an explicit format string.

This indicates that you should not attempt to use the value, but instead rely on a properly marshalled (or formatted) string.

Not mentioned/suggested, time.marshaljson is an option:

marshaljson implements the json.marshaler interface. The time is a quoted string in rfc 3339 format, with subsecond precision added if present.

The sender and receiver don't need to do any special work to encode the time.time value to json and then decode it again:

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

Here is a small example using this structure to encode and decode a stock symbol on a line, https://go.dev/play/p/fx73q8-kvfa, which produces the following output:

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}
...
Copy after login

Can you modify the value sent over the wire, or have someone else modify it to make it correct?

If not, This should be OK:

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)
Copy after login
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
Copy after login

The above is the detailed content of Parse stock quotes using datetime and delete elapsed time. For more information, please follow other related articles on the PHP Chinese website!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template