Я пытаюсь получить дату и время сервера Parse, но я узнаю, что единственный способ - создать или обновить объект, а затем получить значение updatedAt.Получение данных после изменения данных в облачном коде
Мой класс
// Существует только один данных/объект в этом классе
Class Test{
int times
};
Мой облако код
приращение значение «времени», чтобы получить текущую дату и время сервера через getUpdatedAt();
Parse.Cloud.define("updateTimes", function(request, response) {
var test = Parse.Object.extend("Test");
var query = new Parse.Query(test);
query.first({
success: function(results) {
results.increment("times");
results.save();
response.success("success updated");
},
error: function() {
response.error("test lookup failed");
}
});
});
Мой призыв на андроид студии
//Call updateTimes function at cloud code
ParseCloud.callFunctionInBackground("updateTimes", new HashMap<String, Object>(), new FunctionCallback<String>() {
public void done(String result, ParseException e) {
if (e == null) { //success }
}
});
//Get date and time from server
ParseQuery<ParseObject> query = ParseQuery.getQuery("Test");
query.getInBackground("i6hmOEItvI", new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (e == null) {
// success
serverDate = object.getUpdatedAt();
Format formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
date = formatter.format(serverDate);
Log.d("ServerDate",date);
}
});
Моя проблема заключается в serverDate извлечена из ObjectId не правильно. Полученная дата всегда старше. Однако поле updateAt в базе данных успешно обновляется. Я вызывал ParseCloud.callFunctionInBackground перед вызовом object.getUpdatedAt() ;. У кого-нибудь есть идея, почему дата, которую я получаю, не самая последняя?
Спасибо. Я действительно пытался использовать 'new Date()', но результат, полученный на моем эмуляторе, был временем моего устройства. В конце концов, я подумал, что 'new Date()' получает дату с устройства. Виноват :/ – user1853149