当前位置: 首页 > 知识库问答 >
问题:

Javascript ASP。不含时区信息的净日期格式-时区偏移量

陶睿
2023-03-14

我有一个客户端JavaScript,它用JavaScript生成日期(newdate(2007,5,1))。

我需要这个日期传递到一个隐藏的字段,后面的代码可以访问。

我的问题是,当隐藏字段转换为DotNet datetime时,时间是不正确的。这是因为JavaScript包含来自客户端浏览器的时区信息。

然后,DotNet使用此信息根据服务器时间和客户端时间之间的差异重新计算时间。

我需要的是JavaScript中的年、月和日。

我不想通过3 int值传递给后面的代码,因为这将是整个应用程序的重大变化。

对我来说,实现这一目标的最佳方式是什么?

如果我可以在没有时区信息的情况下设置UTC时间,我认为这可能会奏效。

任何帮助都很感激。

共有3个答案

鞠隐水
2023-03-14

您可以从已创建的javascriptDate对象构建字符串-它具有getDate()getMonth()getFullYear()方法,您可以使用这些方法在隐藏字段中构建所需的确切字符串。

公冶伟
2023-03-14

您可以使用DateTimeOffset。ParseExact使用指定的格式将字符串解析为DateTimeOffset值:

        string dateString = "Fri Jun 01 2007 00:00:00 GMT+08:00";
        DateTimeOffset date = DateTimeOffset.ParseExact(dateString, "ddd MMM dd yyyy hh:mm:ss 'GMT'zzz", CultureInfo.InvariantCulture);

您必须将GMT加引号,否则M将被解释为格式字符。

不幸的是,不可能忽略字符串值的一部分。如果你的字符串包括时区的名称,你必须首先拆分它,并获得没有描述的部分

        string dateString = "Fri Jun 01 2007 00:00:00 GMT+08:00 (Taipei Standard Time)";
        var parts=dateString.Split('(');
        string datePart = parts[0].TrimEnd();
        var date=DateTimeOffset.ParseExact(datePart,"ddd MMM dd yyyy hh:mm:ss 'GMT'zzz",CultureInfo.InvariantCulture);
易祯
2023-03-14

如果我理解正确的话,

你需要。toDateString()

var date = new Date(2007,5,1);

document.write(date);
document.write("<br><br>versus<br><br>");
document.write(date.toDateString());

印刷品

Fri Jun 01 2007 00:00:00 GMT+0800 (Taipei Standard Time)

versus

Fri Jun 01 2007
 类似资料:
  • 目标:找到和,然后以以下格式构造URL。 示例URL:/actions/sleep?duration=2002-10-10t12:00:00−05:00 格式基于W3C建议:http://www.w3.org/tr/xmlschema11-2/#datetime 文件中说: 例如,2002-10-10T12:00:00-05:00(2002年10月10日中午,中央夏令时和美国东部标准时间)等于20

  • 问题内容: 我需要将日期格式化为特定的字符串。 我使用class使用“ ” 模式格式化日期,它将当前日期返回为 “ ”,但我需要为 “ ”。 下面是使用的编码, 输出 :格式化的字符串: 我需要的格式是在gmt时间之间添加冒号。 因为我正在使用Google日历插入事件,所以它仅接受我提到的必需格式。 问题答案: 您可以改用Joda Time。它具有可以满足您需求的format属性。 链接 最大优点

  • 我使用的是“亚洲/曼谷”区域id。该偏移是从格林尼治时间UTC 07:00开始的。 但是当我做了下面的事情时,设置为“01/01/1900 7:00:00.000”时不是7:00 结果就是 周一一月一日07:00:00 ICT 1900 -402 周一一月一日06:00:00 ICT 1900 -420 我想知道偏移量是否在1900年1月1日早上7点左右发生了变化,所以我在维基百科上查了一下。ht

  • 问题内容: 我希望服务器始终以HTML中的UTC形式提供日期,并让客户端站点上的JavaScript将其转换为用户的本地时区。 如果我能以用户的区域设置日期格式输出,则为奖励。 问题答案: 以UTC日期开头的最简单的方法似乎是创建一个新对象,并使用这些方法将其设置为所需的日期/时间。 然后,各种方法将提供本地化输出。 例:

  • 我使用HTML5输入日期和输入时间进行ionic开发。默认情况下,它绑定为ISO日期字符串并更改为UTC日期时间。在我看来,这似乎是错误的,因为当用户选择日期2016-06-06时,它可能已成为2016-06-07或2016-06-05,具体取决于时区偏移。输入类型=时间的类似情况。 我的意图是使ISO字符串中的日期保留为用户选择的日期,而不是用时区差来抵消它。 类似于输入datetime本地,但

  • 问题内容: 目标: 找到,然后以以下格式构建网址。 范例网址:/ Actions / Sleep?duration = 2002-10-10T12:00:00−05:00 该文件说: 例如,2002-10-10T12:00:00-05:00(2002年10月10日中午,美国中部夏令时以及美国东部标准时间)等于2002-10-10T17:00:00Z,比2002-10-10T12:00:00Z晚五个