2019年12月26日
DateTime.ToLocalTime() 在一定程度上是没有效果的,
服务器存储的时间全部都是UtcTime,在读取的时候Tolocal之后,还是utcTime。
很显然前台必须要用JavaScript对时间进行一个小处理,Razor页面的ToLocal本身还是在服务器渲染的。
另外我这一篇与上一篇的发布时间足足差了12个小时,这里的显示并不正常。显然是有AM\PM的区分的,
以ToLocalTime().ToString("yyyy-MM-dd hh:mm:ss")的这种方式获取服务器存储的UTC时间会丢失后面AM/PM。
2019年12月28日
不要尝试在Razor页面使用随机数,特别是在前台用foreach里面放随机数,这很容易造成Razor页面的渲染错误。
具体表现:标签嵌套出错,外面的标签跑到了里面。
原因猜测:随机数在foreach里面生成并不同步,页面渲染先于随机数计算。抑或是服务器资源调度的问题,因为渲染出错具有随机性。
2020年1月2日
发现了12小时制没有带AM/PM标识的解决方案,网上搜索下,原来是传入参数的原因。string dt=System.DateTime.Now.ToString("yyyy-MM-dd");
string dt1=System.DateTime.Now.ToString("HH:mm");
string dt2=System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
参数中 小写的 hh 代表了 12小时制 ,而相反 大写的HH代表24小时制。