using Newtonsoft.Json.Linq; using PTMedicalInsurance.Variables; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PTMedicalInsurance.Common { public class Utils { /// /// 日期转换为时间戳Timestamp /// /// 要转换的日期 /// public static long GetTimeStamp(DateTime dateTime) { DateTime _dtStart = new DateTime(1970, 1, 1, 8, 0, 0); //10位的时间戳 long timeStamp = Convert.ToInt32(dateTime.Subtract(_dtStart).TotalSeconds); //13位的时间戳 //long timeStamp = Convert.ToInt64(dateTime.Subtract(_dtStart).TotalMilliseconds); return timeStamp; } /// /// UTC时间戳Timestamp转换为北京时间 /// /// 要转换的时间戳 /// public static DateTime GetDateTime(long timestamp) { //DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); //使用上面的方式会显示TimeZone已过时 DateTime dtStart = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Local); DateTime targetDt = dtStart.AddMilliseconds(timestamp).AddHours(8); return targetDt; } public static void convertTimestamp(JObject joObject,string key) { if (joObject.ContainsKey(key)) { Global.writeLog(string.Format("当前对象[{0}]的类型为:{1}", key, joObject.GetValue(key).Type.GetType())); } if (joObject.ContainsKey(key) && joObject.GetValue(key).Type.GetType() != typeof(string)) { long timestamp = long.Parse(joObject.GetValue(key).ToString()); string datetime = Utils.GetDateTime(timestamp).ToString("yyyy-MM-dd"); joObject[key] = datetime; Global.writeLog(string.Format("转换后的日期为:{0}",datetime)); } } public static JObject Wrapper(JObject jsonInParam) { dynamic request = new JObject(); request.arg0 = jsonInParam; return request; } public static JObject removeWrapper(JObject jsonInParam) { if (jsonInParam.ContainsKey("arg0")) { return (JObject)jsonInParam.GetValue("arg0"); } return jsonInParam; } } }