我的数据库中有一个表格,我将用户的个人资料数据保存为键值对。这对总是字符串。例如:
| Id | Name | Value | UserId |
|:--:|:---------:|:-------:|:------:|
| 1 | FirstName | Some | 55 |
| 2 | LastName | One | 55 |
| 3 | Birthdate | ? | 55 |
| 4 | FirstName | Another | 88 |
我有点担心将DataTime
数据保存为字符串。是保存DataTime.Ticks.ToString()
(然后在需要使用时再将其重新转换为DateTime
)安全且好主意?或者有更好的方法吗?
答案 0 :(得分:3)
不,这是个糟糕的主意。因为你失去了时区而转向蜱虫。 如果您需要将DateTime存储为字符串,请将其转换为timezone。
示例:
ID OBJECT
5637144579 OBJ 1
5637144585 OBJ 2
5637144584 OBJ 3
5637144586 OBJ 4
" ZZZ" - 小时和分钟偏离UTC。
DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:sszzz") // "2017-06-21T14:57:17-07:00"
DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssK") // "2017-06-21T14:57:17Z"
DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:sszzz") // "2017-06-21T14:57:17+00:00"