C# 如何将数据从asp.net webapi传递和处理到angular组件?
我正在从asp.net web api发送日期,如下所示:C# 如何将数据从asp.net webapi传递和处理到angular组件?,c#,angular,asp.net-web-api,datetime-format,C#,Angular,Asp.net Web Api,Datetime Format,我正在从asp.net web api发送日期,如下所示: SubmitDate.ToString() December 17, 1995 03:24:00 它正在回归: 12/13/2018 8:24:20 AM 在angular component中,我使用angular pipe以“2018年12月12日”格式显示日期,它与我当前的PC日期格式配合良好,但当我更改PC的日期格式时,它会给我如下所示的错误 'Unable to convert "18/12/13 1:54:20 PM"
SubmitDate.ToString()
December 17, 1995 03:24:00
它正在回归:
12/13/2018 8:24:20 AM
在angular component中,我使用angular pipe以“2018年12月12日”格式显示日期,它与我当前的PC日期格式配合良好,但当我更改PC的日期格式时,它会给我如下所示的错误
'Unable to convert "18/12/13 1:54:20 PM" into a date' for pipe 'DatePipe'
请帮助理解它,我已经尝试过这些方法
SubmitDate.ToLocalTime().ToString()
SubmitDate.ToUniversalTime().ToString()
但是没有成功。如何将数据从web api传递和处理到angular组件
带角管:
solution.SubmitDate | date:'MMMM d, yyyy'
Javascript有一个日期对象。如果以可接受的格式发送日期,则可以将其自动解析为javascript日期对象 像这样声明响应接口以进行自动解析
export interface something {
time: Date;
}
在asp.net中,您需要确保以javascript能够理解的格式发送。从可接受的格式来看,可以如下所示:
SubmitDate.ToString()
December 17, 1995 03:24:00
或
问题是asp.net和javascript对日期格式有不同的标准
如果您想制作客户端解决方案[JavaScript]:
function ToJavaScriptDate(value) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(value);
var dt = new Date(parseFloat(results[1]));
return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
}
但最好的方法是服务器端解决方案。下面是一个返回真正UTC时间[C#]的函数
这样,您就可以确切地了解客户端的含义。每个客户端的时间可能不同。您可以使用DateTime.ToString()重载,它接受一个参数,允许您格式化日期 例如,要将格式设置为此时对您有效的日期,您可以使用:
var date = new DateTime(2018, 12, 13, 8, 24, 20);
Console.WriteLine(date.ToString("MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture));
//12/13/2018 8:24:20 AM
此处使用CultureInfo.InvariantCulture不考虑任何特定于区域性的格式/本地化
有关日期格式的更多文档-您可以在API端修复日期格式
SubmitDate.ToString(“mmmd,yyyy”)代码>请尝试此操作。它对我有用
var utcDate1=新日期(Date.UTC(96,1,2,3,4,5));
//预期产出:1996年2月2日星期五03:04:05格林尼治标准时间谢谢,这是我喜欢的,容易理解,我也以同样的方式思考。再次感谢。干杯谢谢你的快速回复和努力。谢谢你这么快的回复和努力。