Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将DateTime传输到.NET WebAPI_Android_.net_Datetime_Android Date - Fatal编程技术网

Android 将DateTime传输到.NET WebAPI

Android 将DateTime传输到.NET WebAPI,android,.net,datetime,android-date,Android,.net,Datetime,Android Date,我只想获得Android当前时间并传递到.NETWebAPI。就是这样。但是有很多方法 我试过这个 安卓端 String TimeOfRequest = Long.toString(new Date().getTime()); var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); t = epoch.AddMilliseconds(Convert.ToInt64(locationItem.TimeOfRequest)

我只想获得Android当前时间并传递到.NETWebAPI。就是这样。但是有很多方法

我试过这个

安卓端

String TimeOfRequest =  Long.toString(new Date().getTime());
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
t = epoch.AddMilliseconds(Convert.ToInt64(locationItem.TimeOfRequest));
.NET端

String TimeOfRequest =  Long.toString(new Date().getTime());
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 mobile传递到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"

您想要哪种日期格式?@HemantParmar US MM/dd/yyyy HH:MM:ssI认为这是最好的方法。这可能是由于新的Android日期。尝试java.uitl.Date:
String TimeOfRequest=Long.toString(新的java.util.Date().getTime())以ISO格式传输日期,这是标准格式<代码>YYYY-MM-DD HH:MM:ss
。然后将其转换为您想显示的格式。@OleV.V。ISO 8601:
YYYY-MM-DDThh:MM:ssTZD
。对,我忘记了
T
TZD
传递可识别文本而不是不可读的毫秒值是个好主意。现在,我推荐一个ISO 8601格式的文本,比如
2017-12-11T07:37:47.462Z