将 DateTime 传输到 .NET WebAPI

Transfer DateTime to .NET WebAPI

我只想获取 Android 当前时间并传递给 .NET WebAPI。这就对了。但是有很多方法...

我试过这个

Android边

String TimeOfRequest =  Long.toString(new Date().getTime());

.NET端

var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
t = epoch.AddMilliseconds(Convert.ToInt64(locationItem.TimeOfRequest));

但它给出了这个结果

0001-01-02 18:01:34.0366112

请建议最简单的方法。

试试这个:

private String formatDate(long milliseconds) /* This is your topStory.getTime()*1000 */ {
    DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(milliseconds);
    TimeZone tz = TimeZone.getDefault();
    sdf.setTimeZone(tz);
    return sdf.format(calendar.getTime());
}

如前所述,假设您的 API 是正确的,这意味着您将字符串从 Android 手机正确传递到 ASP.net API。

String TimeOfRequest =  Long.toString(new Date().getTime());
//TimeOfRequest = "1512977867949" // For example

在你的API中:

// For example locationItem.TimeOfRequest = "1512977867949";
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var t= epoch.AddMilliseconds(Convert.ToInt64(locationItem.TimeOfRequest));

Console.WriteLine(t.ToString("MM/dd/yyyy HH:mm:ss")); // print "12/11/2017 07:37:47"
Console.WriteLine(t.GetType().ToString()); // print "System.DateTime"