在Java与C#结合的项目中,经常遇到Java服务器向C#客户端传送时间戳的问题,这里给出一个解决方案:
1.Java服务端生成时间戳整型串:
timestamp = System.currentTimeMillis();
2.在C#客户端解析服务器传来的时间戳:
public string timestamp
{
set
{
DateTime time = DateTime.Now;
//time = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).AddSeconds(double.Parse(value));
DateTime dt_1970 = new DateTime(1970, 1, 1);
long tricks_1970 = dt_1970.Ticks;//1970年1月1日刻度
long time_tricks = tricks_1970 + long.Parse(value) * 10000;//日志日期刻度
time = new DateTime(time_tricks);//转化为DateTime
timestampStr = time.ToLocalTime().ToString();//转为本地时区
}
get
{
return timestampStr;
}
}
注意:最后生成的时间对象需要使用ToLocalTime()处理一下,否则会出现时区误差。