Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将数据从asp.net webapi传递和处理到angular组件?_C#_Angular_Asp.net Web Api_Datetime Format - Fatal编程技术网

C# 如何将数据从asp.net webapi传递和处理到angular组件?

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"

我正在从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" 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格林尼治标准时间

谢谢,这是我喜欢的,容易理解,我也以同样的方式思考。再次感谢。干杯谢谢你的快速回复和努力。谢谢你这么快的回复和努力。