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

Parse stock quotes using datetime and delete elapsed time

WBOY
WBOYforward
2024-02-09 22:20:35388browse

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"

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"`
}

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}
...

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)
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

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!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete