如何将DateTime从JSON转换为C#?可能重复:如何将UNIX时间戳转换为DateTime,反之亦然?我有以下课程:[DataContractAttribute]publicclassTestClass{[DataMemberAttribute]publicDateTimeMyDateTime{get;放;}}这是JSON:{"MyDateTime":"1221818565"}JSON是从PHPWeb服务返回的。我需要做的是将该纪元字符串转换为有效的C#DateTime。最好的方法是什么?我可以这样做:[IgnoreDataMemberAttribute]publicDateTimeMyDateTime{get;放;}[DataMemberAttribute(Name="MyDateTime")]publicInt32MyDateTimeTicks{get{returnthis.MyDateTime.Convert(...);}设置{这个。创建=新日期时间(...);但问题是,MyDateTimeTicks是公开的(在序列化期间将其更改为私有会导致异常)做你发布的内容,并将其设为私有对我来说似乎是正确的。[DataContract]publicclassTestClass{privatestaticreadonlyDateTimeunixEpoch=newDateTime(1970,1,1,0,0,0,0,DateTimeKind.Utc);[IgnoreDataMember]publicDateTimeMyDateTime{get;放;}[DataMember(Name="MyDateTime")]privateintMyDateTimeTicks{get{return(int)(this.MyDateTime-unixEpoch).TotalSeconds;}设置{this.MyDateTime=unixEpoch.AddSeconds(Convert.ToInt32(value));}}}privateDateTimeConvertJsonStringToDateTime(stringjsonTime){if(!string.IsNullOrEmpty(jsonTime)&&jsonTime.IndexOf("Date")>-1){stringmilis=jsonTime.Substring(jsonTime.IndexOf("(")+1);stringsign=milis.IndexOf("+")>-1?"+":"-";stringhours=milis.Substring(milis.IndexOf(sign));milis=milis.Substring(0,milis.IndexOf(sign));hours=hours.Substring(0,hours.IndexOf(")");返回新的DateTime(1970,1,1,0,0,0,0,DateTimeKind.Utc).AddMilliseconds(Convert.ToInt64(milis)).AddHours(Convert.ToInt64(hours)/100);}返回rnDateTime.Now;这就是我在C#中想到的,看起来您需要创建一个新的DateTime并将纪元值添加到此DateTime的“秒”。这就是它在代码中的样子:newSystem.DateTime(1970,1,1,0,0,0,0).AddSeconds(1221818565);我在使用VisualStudio即时窗口Station:{9/19/200810:02:45AM}Date:{9/19/200812:00:00AM}Day:19DayOfWeek:FridayDayOfYear:263Hour:10Kind:UnspecifiedMillisecond:0Minute:2Month:9Second:45Ticks:633574153650000000TimeOfDay:{10:02:45}Year:2008我知道你的问题是针对PHP的,但我只想注意.NETJSON的“问题”:似乎.NET给你的日期是“自纪元以来的毫秒数”(不是秒数)。在这种情况下,AddSeconds行应该是:unixEpoch.AddMilliseconds(Int64.Parse(date));更多信息:http://blogs.msdn.com/b/marcelolr/archive/2008/03/05/system-datetime-ticks-vs-json-date.aspx你想要的是以下内容:DateTimeunixEpoch=newDateTime(1970,1,1,0,0,0,0,DateTimeKind.Utc);日期时间dotnetTime=unixEpoch。AddSeconds(Convert.ToDouble(ticks));ticks是PHP传递给您的值。以上就是C#学习教程:HowtoconvertDateTimefromJSONtoC#?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
