我認為這ToString("yyyy/MM/dd HH:mm:ss")會強制將字串格式化為“/”,但我可以看到每個設備都有不同的格式。如何強制使用“/”保存它?
好的例子-
2021/10/06 18:05:53
我在我的資料庫中看到來自不同用戶的奇怪例子-
2021-10-06 23:48:372021.10.12 12:41:422021. 10. 06 19:17:23('.' 后面的空格)2021.10.13 19.18.16
一個解決辦法是更換每一個-,.并.給/,但這只是解決了奇怪的例子,我發現。如果還有其他人呢?
uj5u.com熱心網友回復:
/在格式字串中表示“特定于文化的日期分隔符”。如果您想要文字正斜杠,請參考它(和冒號,以避免使用自定義時間分隔符):
ToString("yyyy'/'MM'/'dd HH':'mm':'ss")
或者 - 可能更好 - 使用不變文化。這不僅將/用作日期分隔符,而且您無需擔心具有不同默認日歷的文化。(它將始終使用公歷,這大概是您想要的。)
更好的是,使用 ISO-8601 格式 - 您已經在使用“對人類來說有點不尋常”的年份格式,所以您不妨全力以赴并使用標準格式的日期和時間。
示例代碼:
String text = dateTimeValue.ToString(
"yyyy-MM-dd'T'HH:mm:ss",
CultureInfo.InvariantCulture);
這也是可排序的標準日期/時間格式,因此您可以顯著簡化代碼:
String text = dateTimeValue.ToString("s");
(該格式始終使用不變區域性。)
不過,如果你真的需要格式化字串的話。如果您將其保存在資料庫中,我建議您:
- 在資料庫中使用適當的型別,例如 DATETIME
- 使用引數(將值指定為 a
DateTime)而不是格式化文本來存盤它
如果你同時做到這兩點,你就會避免像這樣的怪事。
uj5u.com熱心網友回復:
我能想到的另一個解決方案是創建一個創建日期的新函式
DateTime date= DateTime.UtcNow;
并手動提取并將日期拆分為幾個字串(年、月、日、小時、月、秒)
string year = date.Year.ToString(); string month = date.Month.ToString();...
并以正確的格式string newDate= year "/" month "/" day " " hour ":" minute ":" seconds;
從中構建一個字串
,這樣我就可以確定它始終是我決定的一種格式
uj5u.com熱心網友回復:
如何將日期存盤為數字,例如 unix 時間 -DateTimeOffset.UtcNow.ToUnixTimeSeconds()或者(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds- 存盤數字比存盤字串更簡單、更便宜
還想指出,到目前為止,我看到您存盤的唯一日期是 UtcNow(如您的回答中所寫)-fire base 似乎確實有解決方案,您可以發送ServerValue.TIMESTAMP它,這將導致 fb 存盤服務器看到的unix時間。
我從中得出的結論(從未使用過 fb)是他們存盤日期的方式,所以也許遵循:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321371.html
上一篇:DateTime可以代表基督之前/我們這個時代之前的日期嗎?或者這是如何管理的?
下一篇:如何從發布時間過濾特定時間的帖子
