Angular 格式化JS datetime以更正ISO格式
几天来,我一直在尝试让服务器端代码(C#)保存通过API调用发送给Postgres的时间戳 如果我将Angular 格式化JS datetime以更正ISO格式,angular,postgresql,typescript,asp.net-core,entity-framework-core,Angular,Postgresql,Typescript,Asp.net Core,Entity Framework Core,几天来,我一直在尝试让服务器端代码(C#)保存通过API调用发送给Postgres的时间戳 如果我将DateTime.Now()附加到数据传输对象,它似乎可以正常工作,但是当我尝试解析从客户端发送的DateTime时,我得到了一个400 **0: "The input was not valid."**. 作为我的回答 我的课是这样的 TS: 映射新表单(带输出日期)的方法(TS) 请求的日期格式:“2019-01-04T00:00:00.000Z” 所需格式:“2018-12-29 20:
DateTime.Now()
附加到数据传输对象,它似乎可以正常工作,但是当我尝试解析从客户端发送的DateTime时,我得到了一个400
**0: "The input was not valid."**.
作为我的回答
我的课是这样的
TS:
映射新表单(带输出日期)的方法(TS)
请求的日期格式:“2019-01-04T00:00:00.000Z”
所需格式:“2018-12-29 20:23:22.667766”使用unix\u时间戳作为基本格式,并根据需要进行转换 以c#获取unix时间戳: 以c#从unix时间戳获取日期时间: 获取javascript中的unix时间戳:
let timestamp = parseInt(new Date().getTime()/1000);
以c#从unix时间戳获取日期时间:
所以我真的忘了我已经打开了这个问题。6个月后我又问了一次,得到了我想要的答案: 最后,答案只是使用了
Convert.ToDateTime()
,它给出了我需要的确切日期格式
结束这个问题 尝试使用
moment.js
lib。它非常适合使用datetime使用moment.js
格式化文档。默认情况下,moment().format()
返回ISO 8601中的当前日期时间。我会看一看(我已经将文档保存在书签中很久了),但我真的很想了解如何在没有库帮助的情况下将日期转换为ISO 8061。根据此文档toISOString
方法返回ISO8601格式的日期。您也可以尝试通过getTime
方法将其转换为时间戳。我建议date fns
优于moment.js
,因为后者是一种资源占用依赖。
public class ArtistShow
{
public Guid Id { get; set; }
public DateTime ShowDate { get; set; }
public string Venue { get; set; }
public string BandsAlsoPlaying { get; set; }
public virtual Artist Artist { get; set; }
}
private _mapNewShowForm(): ArtistShows {
let showDate = this.newShowForm.get(this.newShowFormEnum.DATE).value;
let convertedShowDate = new Date(showDate);
return {
bandsAlsoPlaying: [],
showDate: convertedShowDate.toISOString(),
venue: `${this.newShowForm.get(this.newShowFormEnum.VENUE).value}, ${this.newShowForm.get(this.newShowFormEnum.CITY).value}`
};
}
var timestamp = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds();
DateTime dt = DateTimeOffset.FromUnixTimeSeconds(1549741828).DateTime;
let timestamp = parseInt(new Date().getTime()/1000);
let date = new Date(1549742450 * 1000)