C#和JS中表示带有时区的DateTime

来源:互联网 发布:python安装步骤 编辑:程序博客网 时间:2024/04/29 17:46

公司要做一个感恩节的活动,需要在当地时间11月28号早晨6点到晚上0点之间把主页变成黑色,时间日期的代码涉及C#和JS。


JS的比较简单,时区、上午下午可以直接写在字符串里然后解析。比较大小用数学里的大小等于<>=即可。

var blackfriStart = Date.parse('28 Nov 2014 6:00:00 AM MST'),            blackfriEnd = Date.parse('28 Nov 2014 11:59:59 PM MST'),            cybermonStart = Date.parse('1 Dec 2014 8:00:00 AM MST'),            cybermonEnd = Date.parse('1 Dec 2014 11:59:59 PM MST'),            now = new Date();        if ((blackfriStart <= now && blackfriEnd >= now) || (cybermonStart <= now && cybermonEnd >= now)) {            $('section').hide();            $('#siteseals').hide();        }
参考:http://www.comptechdoc.org/independent/web/cgi/javamanual/javadate.html


C#就比较麻烦了。字符串里可以写AMPM但是不能写时区,如果想解释时区的话要重新写一个类,或者要用TryParse、ParseExact。我要直接把C#写到aspx页面里,不想弄得太复杂,上面的方法都不太合适。最后发现没有什么方法可以把当地时间转换成标准时间也就是0时区的时间,只好手动查了对应的UTC时间,然后用UTC格式写到字符串里。具体代码如下:

<%if (DateTime.Compare(DateTime.UtcNow, DateTime.Parse("2014-11-28T13:00:00")) >= 0 && DateTime.Compare(DateTime.UtcNow, DateTime.Parse("2014-11-29T06:59:59")) <= 0)      { %>
当前时间为DateTime.UtcNow,UTC时间的格式是YYYY-MM-DDTHH:mm:ss。比较要用到Compare()。

0 0