相关疑难解决方法(0)

如何将Unix时间戳转换为DateTime,反之亦然?

有这个示例代码,但它开始讨论毫秒/纳秒问题.

自从C#中的Unix纪元以来,同样的问题出现在MSDN上,.

这是我到目前为止所得到的:

public Double CreatedEpoch
{
  get
  {
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
    TimeSpan span = (this.Created.ToLocalTime() - epoch);
    return span.TotalSeconds;
  }
  set
  {
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
    this.Created = epoch.AddSeconds(value);
  }
}
Run Code Online (Sandbox Code Playgroud)

c# unix datetime data-conversion epoch

715
推荐指数
16
解决办法
55万
查看次数

解析值时遇到意外的字符

目前我有一些问题.我正在使用C#和Json.NET.问题是我总是得到:

{"解析值时遇到意外的字符:e.路径'',第0行,位置0."}

所以我使用Json.NET的方式如下.我有一个应该保存的类.这个类看起来像这样:

public class stats
{
    public string time { get; set; }
    public string value { get; set; }
}

public class ViewerStatsFormat
{
    public List<stats> viewerstats { get; set; }
    public String version { get; set; }

    public ViewerStatsFormat(bool chk)
    {
        this.viewerstats = new List<stats>();
    }
}
Run Code Online (Sandbox Code Playgroud)

此类的一个对象将被填充并保存:

 File.WriteAllText(tmpfile, JsonConvert.SerializeObject(current), Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)

保存部分工作正常,文件存在并填充.之后,文件将被读回到类中:

    try 
{ 

    ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
    //otherstuff        

}
catch(Exception ex)
{
    //error loging stuff
}
Run Code Online (Sandbox Code Playgroud)

现在在current =行上出现异常:

{"解析值时遇到意外的字符:e.路径'',第0行,位置0."}

我不知道为什么会这样.json文件如下 - > 点击我即时JSON链接

有没有人有任何想法?

c# json json.net visual-studio-2013

95
推荐指数
7
解决办法
33万
查看次数

将带有 TimeSpan 属性的 JSON 对象传递给 C# WebAPI

我有一个 WebAPI(用 C# 编写)、一个接受带有名为TriggerDelay的 System.TimeSpan-Property 的复杂对象的 POST 方法,以及一个 React Native 应用程序,我从其中以 JSON 格式传递该对象。

但是,此 TimeSpan 属性未正确序列化,我不断在 API 端获取 00:00:00 值。

我正在尝试这样:

"triggerDelay":{
        "hours": "30",
        "minutes": "10",
        "seconds": "0"
    },
Run Code Online (Sandbox Code Playgroud)

或者像这样:

"triggerDelay": "30:10:00"
Run Code Online (Sandbox Code Playgroud)

但仍然没有运气......在 API 中,它始终是 00:00:00。

我将不胜感激任何帮助!

UPD这是我的模型:

"triggerDelay":{
        "hours": "30",
        "minutes": "10",
        "seconds": "0"
    },
Run Code Online (Sandbox Code Playgroud)

我的WebAPI方法:

public async Task<IActionResult> Publish([FromBody] Alarm alarm) {}
Run Code Online (Sandbox Code Playgroud)

这是我的原始 JSON 对象,在 Postman 的请求正文中设置:

{
 "id": "d17ef748-f378-4728-c6c2-9dfab1efce5b",
  [...other properties...]
 "triggerDelay":{
        "hours": "30",
        "minutes": "10",
        "seconds": "0"
    }
}
Run Code Online (Sandbox Code Playgroud)

c# timespan asp.net-core-webapi

7
推荐指数
1
解决办法
9128
查看次数

使用 System.Text.Json 反序列化 Json 时间戳

我正在尝试反序列化以下 JSON

{"serverTime":1613967667240}
Run Code Online (Sandbox Code Playgroud)

进入以下类的对象

public class ApiServerTime
{
    [JsonPropertyName("serverTime")]
    public DateTime ServerTime
    {
        get;
        private set;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用以下命令:

JsonSerializer.Deserialize<ApiServerTime>(jsonString);
Run Code Online (Sandbox Code Playgroud)

但生成的对象包含ServerTime == DateTime.MinValue. 我究竟做错了什么?

c# datetime json system.text.json

6
推荐指数
2
解决办法
5514
查看次数