格式化JSON日期值

时间:2014-01-28 14:09:04

标签: c# json windows

我正在从API访问数据,并返回JSON中的日期值,格式为2014-12-01。我已将此分配给类并绑定到列表框控件中的文本块,并且显示正常。但是,有没有办法以“2014年12月20日星期四”的格式显示日期。

我正在使用c#.NET for windows phone 8.下面的代码片段介绍了如何返回数据。

         while (count < ja.Count) {
                SkiddleEvents content = new SkiddleEvents();

                //EVENT DETAILS
                if (ja[count]["imageurl"] != null) {
                    content.str_eventImage = ja[count]["imageurl"].ToString();
                }
                else {
                    Uri imageUrl = new Uri("/Assets/placeholder.jpg", UriKind.Relative);
                    content.str_eventImage = imageUrl.ToString();
                }
                content.str_eventID = ja[count]["id"].ToString();
                content.str_eventName = ja[count]["eventname"].ToString();
                content.str_eventDate = ja[count]["date"].ToString();
                content.str_eventAddress = ja[count]["venue"]["address"].ToString() + ", " + ja[count]["venue"]["town"].ToString();
                content.str_venueID = ja[count]["venue"]["id"].ToString();

                //add the content to the list box and increase the count
                contentList.Add(content);
                count++;
            } 

2 个答案:

答案 0 :(得分:1)

将此行更改为:

DateTime eventDate = DateTime.MinValue;
if (DateTime.TryParse(ja[count]["date"], out eventDate))
{
    content.str_eventDate = string.Format("{0:dddd dd}{1} {0:MMMM yyyy}",
        eventDate, 
        (eventDate.Day == 1) 
                         ? "st"
                         : (eventDate.Day == 2)
                               ? "nd"
                               : (eventDate.Day == 3)
                                     ? "rd"
                                     : "th"); 
}

那应该可以获得你想要的格式。

从此处获取日期时间格式:Getting day suffix when using DateTime.ToString()

答案 1 :(得分:0)

将JSON date字段转换为DateTime对象。

DateTime dt = DateTime.Parse(content.str_eventDate = ja[count]["date"].ToString());
string formattedDate = dt.ToString("G");

有关自定义日期/时间格式,请参阅here