楼主:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-12-27 13:02:17※ 引述《StupidGaGa (笨嘎嘎)》之铭言:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.249.117.38
※ 文章网址: http://www.ptt.cc/bbs/C_Sharp/M.1419559087.A.D6C.html
→ AmosYang: 就“时区转换”来说,还是别土法炼钢…参考一下 12/26 11:40
→ AmosYang: TimeZoneInfo 及 DateTimeOffset 吧 12/26 11:40
: 是我表达有问题吗?“举例”的重点是在TimeZoneInfo?
: 我怎么觉得我是在讨论Field与Property。
对, 但你举的例子很差
你又没特别讲, 不懂的人可能会觉得这个实作本身应该也不错吧
: 个人对于用不用TimeZoneInfo没什么想法,
: 但是“时区转换”用TimeZoneInfo就比较高尚吗?
: 单纯的用加减时数就比较老旧吗?
确实比较高尚啊
像你这样加减有个根本问题:日光节约时间
而且你的实作没考虑到 DateTime.Kind, 比较的时候很可能出现莫名的问题
当然你会这样分享, 代表你自己从没遇到过这类问题
但这东西真的超容易出包, 而且一包起来你哭都哭不出来
有完整时区支援可以靠就要赶快抱大腿啊, 别傻了
: 我所学到的是,不管方法如何,要因时因地的用才是好方法,
: 用某某方法比较好的说法,我抱持怀疑。
嗯, 你说得一点也没错
所以 MSDN 上就有这么一篇文章
在 DateTime、DateTimeOffset 和 TimeZoneInfo 之间选择
http://d.pr/18EIf
直接拉到最下面就会看到, 微软基本上觉得任何时候 TimeZoneInfo 都适用
除非你要支援很早的版本(网站开发没这问题)或者需求特殊(第二段)
在这种状况下才会比较需要用到 naive DateTime 处理
你的做法在某些状况下还是有用(虽然实作本身有改进空间)
可是在绝大多数情况下, 内建的 TimeZoneInfo 都更好
当然你要说你没讲错嘛, 确实你是没讲错什么
但你提供的资讯太少, 不论是你不想或无力提供, 都代表这篇文章不完整
即使所有内容都完全正确, 读者看到的仍然是歪曲的事实
也就是说, 你的第一篇文章会误导人
所以下面推文才会那样补充
而你的第二篇文章就没有道理了
作者: GNUGCC (-std=c++14) 2013-08-10 00:59:00
void main(void) 的写法是可行的唷^^虽然这个写法较传统,但是语法与文法都正确哦^^目前我使用的 Visual C++ 都接受 void main(void) 与int main(void),各位可以把 C++ 专案改成原生 C++ 类型来用 void main(void) 来写发现也可通过编译.这个就是 Visual C++ 的弹性.