3

System.DateTime.Now 在 C# 中返回的时间是什么时候?是本地机器(客户端)时间还是服务器(IIS)时间?

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

编辑 好的,对不起,我放括号是一个错误。但问题是本地时间还是服务器时间。

4

6 回答 6

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
于 2013-03-26T04:59:41.300 回答
6

DateTime.Now执行几个步骤:

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

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

如果您要与多个时区的客户打交道,通常将所有日期存储为 UTC,然后存储客户的时区以用于转换目的。

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

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

于 2013-03-26T04:59:49.180 回答
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

希望能帮助到你 :)

于 2013-03-26T05:03:24.313 回答
1

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

于 2013-03-26T04:57:20.133 回答
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
}
于 2013-03-26T04:58:04.117 回答
0

它返回当前系统时间

在客户端运行:如果它正在执行客户端,则返回客户端系统时间

在服务器上运行:如果它在服务器上执行,则返回服务器时间

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

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

于 2013-03-26T05:24:24.873 回答