Utils.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Variables;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace PTMedicalInsurance.Common
  9. {
  10. public class Utils
  11. {
  12. /// <summary>
  13. /// 获取交易号
  14. /// </summary>
  15. /// <returns></returns>
  16. public static string GetTradeNo()
  17. {
  18. return Global.inf.hospitalNO + DateTime.Now.ToString("yyyyMMddHHmmssffff");
  19. }
  20. /// <summary>
  21. /// 日期转换为时间戳Timestamp
  22. /// </summary>
  23. /// <param name="dateTime">要转换的日期</param>
  24. /// <returns></returns>
  25. public static long GetTimeStamp(DateTime dateTime)
  26. {
  27. DateTime _dtStart = new DateTime(1970, 1, 1, 8, 0, 0);
  28. //10位的时间戳
  29. long timeStamp = Convert.ToInt32(dateTime.Subtract(_dtStart).TotalSeconds);
  30. //13位的时间戳
  31. //long timeStamp = Convert.ToInt64(dateTime.Subtract(_dtStart).TotalMilliseconds);
  32. return timeStamp;
  33. }
  34. /// <summary>
  35. /// UTC时间戳Timestamp转换为北京时间
  36. /// </summary>
  37. /// <param name="timestamp">要转换的时间戳</param>
  38. /// <returns></returns>
  39. public static DateTime GetDateTime(long timestamp)
  40. {
  41. //DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  42. //使用上面的方式会显示TimeZone已过时
  43. DateTime dtStart = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Local);
  44. DateTime targetDt = dtStart.AddMilliseconds(timestamp).AddHours(8);
  45. return targetDt;
  46. }
  47. public static void convertTimestamp(JObject joObject,string key)
  48. {
  49. if (joObject.ContainsKey(key))
  50. {
  51. Global.writeLog(string.Format("当前对象[{0}]的类型为:{1}", key, joObject.GetValue(key).Type.GetType()));
  52. }
  53. if (joObject.ContainsKey(key) && joObject.GetValue(key).Type.GetType() != typeof(string))
  54. {
  55. long timestamp = long.Parse(joObject.GetValue(key).ToString());
  56. string datetime = Utils.GetDateTime(timestamp).ToString("yyyy-MM-dd");
  57. joObject[key] = datetime;
  58. Global.writeLog(string.Format("转换后的日期为:{0}",datetime));
  59. }
  60. }
  61. public static JObject Wrapper(JObject jsonInParam)
  62. {
  63. dynamic request = new JObject();
  64. request.arg0 = jsonInParam;
  65. return request;
  66. }
  67. public static JObject removeWrapper(JObject jsonInParam)
  68. {
  69. if (jsonInParam.ContainsKey("arg0"))
  70. {
  71. return (JObject)jsonInParam.GetValue("arg0");
  72. }
  73. return jsonInParam;
  74. }
  75. }
  76. }