【问题标题】:How to parse date format?如何解析日期格式?
【发布时间】:2014-09-26 14:00:35
【问题描述】:

在我的应用程序正在使用的 Web 服务之一中,我遇到了以下 DateTime 格式。

"/Date(1395780377459)/"

这是一些标准的日期格式吗?如果是这样,如何将其解析为 DateTime 对象?

编辑:

感谢 cmets。所以"/Date(1395780377459)/" 对应于格林威治标准时间:2014 年 3 月 25 日星期二 20:46:17 GMT .我想知道如何在.net 中解析它。试过了:

         string test = "/Date(1395780377459)/";
         var datestring = test.Substring(6).TrimEnd(')','/');
         var date = new DateTime(long.Parse(datestring));

也试过了:

 string test = "/Date(1395780377459)/";
 var datestring = test.Substring(6).TrimEnd(')','/');
 var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 var result =  epoch.AddSeconds(long.Parse(datestring));

它不起作用。知道出了什么问题吗?

【问题讨论】:

  • 您必须得到 JSON 格式的响应。这是日期的 JSON 格式
  • 从这个stackoverflow.com/questions/206384/… 问题参考Roy Tinker's 答案
  • @devnull:在 SO 上,请始终比“它不起作用”更具体:这是否意味着代码无法编译? (如果是这样,你会得到什么编译错误,在哪里?)是否在运行时抛出异常? (如果是,是哪一个,在哪个位置?)它会产生意想不到的结果吗?等
  • @devnull,很可能,您的 Web 服务返回一个 json 并且 json 序列化程序可以很好地处理它(例如 Json.Net)。你如何使用你的json?我认为您不必做一些额外的工作来解析它。

标签: c# datetime datetime-format


【解决方案1】:

我认为日期是毫秒格式。所以你可以试试这个:

DateTime date = new DateTime(long.Parse(1395780377459));
date.ToString("yyyy-MM-ddThh:mm:ssZ");

或者干脆

var time = TimeSpan.FromMilliseconds(1395780377459);

此外,如果日期是 json 格式,那么您可以按照answer 中的说明进行尝试:

var date = new Date(parseInt(jsonDate.substr(6)));

【讨论】:

  • 我试过了:string test = "/Date(1395780377459)/"; var datestring = test.Substring(6).TrimEnd(')','/'); var date = new DateTime(long.Parse(datestring));
  • @devnull:- 你可以试试这个:var date = new Date(parseInt(datestring.substr(6)));
  • 谢谢。通过添加毫秒而不是秒来让它工作
  • @devnull:- 不客气。我没有很清楚地明白这一点。我的意思是你在将时间除以 1000 然后使用秒后让它工作了吗?
【解决方案2】:

它看起来像一个 unix 时间戳:

http://www.epochconverter.com/

Tue, 25 Mar 2014 20:46:17 GMT

在 .NET 中:

var epoch = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
var dt = epoch.AddMilliseconds(1395780377459);

(来源:How to convert a Unix timestamp to DateTime and vice versa?

【讨论】:

  • 谢谢。通过添加毫秒而不是秒来让它工作
  • @devnull:谢谢,改变了我的答案。出于某种原因,我的 LinqPad 不接受 AddMilliSeconds ;)
  • 有更清洁的方法吗?我的意思是 .NET 支持的方式?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
相关资源
最近更新 更多