日期:2014-05-17  浏览次数:21284 次

带时区的日期格式如何绑定DataGridView
win桌面程序,json返回的集合,日期格式为
    "createDate": "2013-06-25T00:27:03.277Z",
绑定显示的是0点27分,我想让他显示8点27分,哪儿可以设置时区?谢谢

------解决方案--------------------
2013-06-25T00:27:03.277Z  是哪一时区的时间
你想显示为哪一时区的时间?
------解决方案--------------------
不会!lz好有钱啊!
------解决方案--------------------
void Main()
{
string str="2013-06-25T00:27:03.277Z";
DateTime dt=DateTime.ParseExact(str,"yyyy-MM-ddTHH:mm:ss.fffZ",new System.Globalization.CultureInfo("en-us"));
Console.WriteLine(dt.ToString("HH:mm"));  //08:27
}

------解决方案--------------------

private void dataGridView1_CellFormatting(object sender,
    DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 0)  // your  data columns
    {
       DateTime dt=DateTime.ParseExact(e.Value,"yyyy-MM-ddTHH:mm:ss.fffZ",new System.Globalization.CultureInfo("en-us"));
        e.Value = dt.ToString("HH:mm"); // apply formating here
        e.FormattingApplied = true;
    }
}


http://msdn.microsoft.com/en-us/library/z1cc356h.aspx?ppud=4
------解决方案--------------------
"//Date(NUMBER(+/-)TZD)//"  这种类型是带有市区

JSON转化默认的是UTC格式 所有只有在解析JSON钱 进行字符格式 


------解决方案--------------------
当然这里最好用 DateTime.TryParseExact方法
------解决方案--------------------
引用:
Quote: 引用:

void Main()
{
string str="2013-06-25T00:27:03.277Z";
DateTime dt=DateTime.ParseExact(str,"yyyy-MM-ddTHH:mm:ss.fffZ",new System.Globalization.CultureInfo("en-us"));
Console.WriteLine(dt.ToString("HH:mm"));  //08:27
}


这样说转换了吧,我是想省力点,绑定到DataGridView
用的是 Newtonsoft.Json.Linq, 

JObject.Parse(readText)
o("data")("items")
这样获取数据去绑定的。


修改Newtonsoft.Json源代码的new data 格式
DateTime.Now - DateTime.UtcNow

这样算方便了