System.DateTime.Now在C#中返回什么?

时间:2013-03-26 04:55:03

标签: c# asp.net

System.DateTime.Now几次在C#中返回? 它是本地计算机(客户端)时间还是服务器(IIS)时间?

如果这返回客户端时间,如何获取服务器时间,反之亦然?

修改 好的,抱歉这是一个错误,我把paranthesis。 但问题是当地时间或服务器时间。

6 个答案:

答案 0 :(得分:6)

DateTime.Now返回服务器上的当前日期和时间,表示为本地时间

要获得客户端时间,您需要使用javascript:

var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
//etc
var utcHours = now.getUTCHours();
var utcMinutes = now.getUTCMinutes();
//etc
//or
var utc = now.getTime();//milliseconds since 1 January 1970 00:00:00 UTC

答案 1 :(得分:5)

DateTime.Now执行以下几个步骤:

  • 从操作系统获取UTC时间
  • 从正在执行的计算机的注册表中获取时区信息
  • 使用该时区信息将UTC解析为当地时间(再次,执行机器的本地时间)
  

如果这返回客户端时间,如何获取服务器时间,反之亦然?

如果您要与多个时区的客户打交道,以UTC格式存储所有日期,然后存储客户的时区以进行转换通常很有用。

JavaScript也可用于将UTC日期解析为客户端时间和/或在Web浏览器中获取时间。

地理定位(例如检查用户的IP)也可以用来猜测用户的位置/时区,但不能保证准确。

答案 2 :(得分:2)

它返回托管网站/应用程序的服务器时间,因为asp.net是服务器端技术。

要获得客户端时间,您需要使用javasrcipt / jQuery,这是客户端技术:

var now = new Date();
now.format("dd/M/yy h:mm tt");

http://blog.stevenlevithan.com/archives/date-time-format http://www.w3schools.com/jsref/jsref_obj_date.asp

希望有所帮助:)

答案 3 :(得分:1)

当代码在服务器上时,它显然返回当前服务器时间

答案 4 :(得分:1)

DateTime.Now返回服务器计算机上的当前日期和时间,以当地时间表示。

代码所在的服务器上的含义。

然而,使用JavaScript从浏览器获取当前日期/时间。

function getDateTime()
{
    var localTime = new Date();
    var year= localTime.getYear();
    var month= localTime.getMonth() +1;
    var date = localTime.getDate();
    var hours = localTime .getHours();
    var minutes = localTime .getMinutes();
    var seconds = localTime .getSeconds();    
    //at this point you can do with your results whatever you please
}

答案 5 :(得分:0)

返回当前系统时间

在客户端运行:如果正在执行客户端

,则返回cllient系统时间

在服务器上运行:如果服务器在服务器

执行,则返回服务器时间

如果您想要服务器时间,只需编写一个在服务器上运行的方法,然后在客户端系统中调用它

请参阅从客户端调用服务器方法的this参考示例。