目标:找到local time并UTC time offset以下列格式构建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日中午,中央夏令时以及美国东部标准时间)等于2002-10-10T17:00:00Z,比2002-10-10T12:00:00Z晚5个小时.
所以基于我的理解,我需要通过新的Date()找到我的本地时间,然后使用getTimezoneOffset()函数来计算差异,然后将它附加到字符串的末尾.
1.以格式获取当地时间
var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)
Run Code Online (Sandbox Code Playgroud)
产量
2013-07-02T09:00:00
Run Code Online (Sandbox Code Playgroud)
2.以小时为单位获取UTC时间偏移量
var offset = local.getTimezoneOffset() / 60;
Run Code Online (Sandbox Code Playgroud)
产量
7
Run Code Online (Sandbox Code Playgroud)
3.Construct URL(仅限时间部分)
var duration = local + "-" + offset + ":00";
Run Code Online (Sandbox Code Playgroud)
输出:
2013-07-02T09:00:00-7:00
Run Code Online (Sandbox Code Playgroud)
以上输出结果表示我的当地时间是2013/07/02 9am,与UTC的差异是7小时(UTC是比当地时间早7小时)
到目前为止它似乎工作,但如果getTimezoneOffset()返回负值如-120怎么办?
我想知道在这种情况下格式应该是什么样的,因为我无法从W3C文档中找到答案.提前致谢.
目前我正在编写一个JavaScript文件并具有以下行:
var res = "JSON=" + JSON.stringify(result);
Run Code Online (Sandbox Code Playgroud)
结果正好在这一行之上.我遇到的问题是IE8(仅限IE8)向我报告JSON未定义.我不知道该怎么做,因为据我所知,IE8是一个实现JSON支持的浏览器.有谁知道可能会发生什么?
我没能在IE8和Safari 5上解析ISO-8601日期"2011-04-26T13:16:50Z",但它适用于Chrome 10,FF4.支持似乎很混杂?
有谁知道哪些浏览器可以解析这种格式的实际状态?我假设IE6,7也会失败.
var d = Date.parse("2011-04-26T13:16:50Z");
Run Code Online (Sandbox Code Playgroud) 我想使用jquery timeago插件 - http://timeago.yarp.com/
我有这样的时间戳1331209044000,文档说我需要ISO 8601时间戳.
说实话,我从未听说过ISO 8601.
我怎么能转换它?
干杯
当我将带有日期属性的json对象发布到ApiController时,它不会反序列化为日期.
服务器站点代码:
public class MegaTestController : ApiController
{
// POST /megatest
public void Post(ttt value)
{
string sdf = "!sad";
}
}
public class ttt
{
public DateTime Date { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我用fiddler做一个POST请求
POST http:// localhost:62990/MegaTest HTTP/1.1
用户代理:Fiddler
主持人:localhost:62990
内容类型:text/json
内容长度:54
{"日期":"/日期(1239018869048)/","名称":"Dude"}
但进入的对象只有Name属性集,Date属性为{01.01.0001 00:00:00}
我错过了任何标题或项目设置吗?
编辑:请求实际上来自a HttpClient.是否可以在发送请求之前格式化日期HttpClient?
public Task<T> Create<T>(T item)
{
var service = new HttpClient();
service.BaseAddress = new Uri("http://localhost:62990");
var method …Run Code Online (Sandbox Code Playgroud) 我有个约会
Thu Jul 12 2012 01:20:46 GMT+0530
Run Code Online (Sandbox Code Playgroud)
如何将其转换为ISO-8601格式
2012-07-12T01:20:46Z
Run Code Online (Sandbox Code Playgroud) 如果我有一个表示以毫秒为单位的日期的整数,那么将其转换为iso格式的语法是什么?
我正在进行REST调用,我需要以"2006-09-01T07:00:00.000 + 0000"格式发送日期.
用户以"YYYY/MM/DD"格式输入日期,我使用"moment.js"格式化ISO 8601中的日期,格式为"YYYY-MM-DDTHH:MM:SS.MMMZ".但它给了我这个输出"1969-06-20T00:06:00.Jun-07:00".
那么,如何使用moment.js或Javascript以这种格式"2006-09-01T07:00:00.000 + 0000"获取日期?
像下面这样的日期和时间格式是什么,例如:2001-07-26T20:52:54Z?
以及如何将日期和时间转换为该特定格式以及JSON字符串?
例如,如果用户以7/26/2001和20:52:54输入,我希望将其转换为2001-07-26T20:52:54Z格式。
谢谢
在VS2010中开发的MVC 4项目中,我有一个屏幕,其中有一个下拉菜单,其中显示文本的日期显示为dd-MMM-yyyy,其基础值为dd-mm-yyyy。
在发布数据的函数中,当我发出警报时,可以看到所选值在dd-mm-yyy中。
alert($("#dropdwn_BirthDateVal").val());
Run Code Online (Sandbox Code Playgroud)
上面的这一行以dd-mm-yyyy格式显示我的日期。
但是,当我尝试将该值发布到控制器时,使用相同的方法
$.ajax({
type: "POST",
url:"@Url.Content("~/Home/GetUserDetails")",
async:false,
dataType: "JSON",
data: {
//.....other string and integer values
//.....that go thru properly
"myDto.DOB": $("#dropdwn_BirthDateVal").val()
},
error: function (error) {
alert(error);
},
..... remaining code here
Run Code Online (Sandbox Code Playgroud)
...日期是 1/1/0001 12:00:00 AM
我发布到“ GetUserDetails”的控制器操作有一个称为UserVM的ViewModel类作为其参数。UserVM具有一个称为MyDto的dto类。MyDto中有一个名为DOB的Date属性,其类型为DateTime。MyDto也具有其他属性。字符串和整数值正确通过。
我想念什么?
javascript ×7
jquery ×3
asp.net-mvc ×2
c# ×1
date-format ×1
datetime ×1
html ×1
httpclient ×1
iso ×1
iso8601 ×1
json ×1
momentjs ×1
safari ×1
timeago ×1
timezone ×1