c# - 将 javascript 日期时间转换为 C#/VB.NET 日期时间

标签 c# javascript asp.net vb.net

我想获取客户端时区,因此我使用下面的代码

function filltime() 
{
        document.getElementById("hdnTime").value = new Date();
} 

转化

 Dim time As Date = DateTime.ParseExact(hdnTime.Value,
                                           "ddd MMM d HH:mm:ss UTCzzzzz yyyy",InvariantCulture)  

我没有得到确切的值。它仅显示服务器时间。 但 hdnTime.Value 包含正确的值(“Mon Feb 18 14:46:49 UTC+0530 2013”​​)。我认为问题出在转换上。

有什么问题吗?怎么解决?

最佳答案

日期和时间对于 1 种语言来说是一种痛苦,更不用说在 2 种语言之间传递值时了。

我建议在将 JavaScript Date() 对象发送回服务器之前将其序列化为 JSON。然后使用 JSON.NET 等库将其反序列化为 C# DateTime 对象。 。关于序列化和反序列化时可以应用哪些设置,有全面的文档 ( Serializing Dates in JSON )。

JavaScript

function filltime() 
{
    document.getElementById("hdnTime").value = JSON.stringify(new Date());
}

JSON并不是每个浏览器都原生的,所以你的意思是需要手动加载它,更多信息可以引用:Browser-native JSON support (window.JSON)

C# 使用 JSON.NET

DateTime dateTime = JsonConvert.DeserializeObject<DateTime>(hdnTime.Value);

关于c# - 将 javascript 日期时间转换为 C#/VB.NET 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14932928/

相关文章:

c# - XNA,在运行时减去 2 个网格?

javascript - Angular 下拉列表的问题 - 单击链接时动态选择一个选项

javascript - 如何检查数组的至少一个键值是否包含特定字符串

c# - 服务器端验证完成后运行 javascript 函数

c# - 这是如何工作的,其中 Enum 在同一声明中设置了两次值?

c# - RavenDb - 状态代码 : NotFound

c# - PreRequestFilters 之前的 ServiceStack 请求处理延迟

ASP.NET 应用程序正在显示美国日期格式

c# - 我怎样才能知道照片是在 Vista 上运行的 C# 中实际拍摄的?

javascript - 简单的 jquery .post 不返回数据