我的android项目的后端模块中的客观化实体中有一个Date
对象。
当我尝试从应用模块访问此对象时,它将作为com.google.api.client.util.DateTime
对象返回。
在我的后端模块中
@Entity
public class MessageEntity{
Date time;
String message;
public MessageEntity(){
time = new Date();
}
public Date getDate(){
return time;
}
//other geters and setters
}
在另一个后端类方法中
public GetMessagesResponse getMessages(Context context, GetMessagesRequest req) throws NotFoundException, BadRequestException {
com.googlecode.objectify.cmd.Query<MessageEntity> query = ofy().load().type(MessageEntity.class);
query = query.order("dateCreated");
List<MessageListItem> records = new ArrayList<>();
QueryResultIterator<MessageEntity> iterator = query.iterator();
int num = 0;
while (iterator.hasNext()) {
MessageEntity t = iterator.next();
boolean position = false;
MessageListItem i = new MessageListItem(position);
i.setMessage(t.getMessage());
i.setDateCreated(t.getDateCreated());
i.setMessageId(t.getId());
}
}
GetMessagesResponse res = new GetMessagesResponse();
res.setSuccess(true);
res.setMessages(CollectionResponse.<MessageListItem>builder().setItems(records).build());
return res;
}
这是我在app模块类中访问后端模块数据的方法
private void loadConversationFromDb(){
d("loadConversationFromDb");
GetMessagesTask task = new GetMessagesTask(new ApiTask.ResultListener() {
@Override
public void successHook(Object o) {
if (o instanceof GetMessagesResponse) {
GetMessagesResponse res = (GetMessagesResponse) o;
List<ChatMessageData> messages = new ArrayList<>();
if (res.getMessages() != null) {
for (MessageListItem i : res.getMessages().getItems()) {
ChatMessageData dp = new ChatMessageData(i.getPosition(),
i.getMessage(), /*THIS RETURNS A DATETIME object*/ i.getDateCreated());
messages.add(dp);
}
}
然后我从现在的DateTime对象访问毫秒,并以用户友好的方式对其进行格式化,并将其设置为名为text_view_time
的TextView上的字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("d MMM yyyy HH:mm:ss");
DateTime time = provider.date;
text_view_time.setText(dateFormat.format(new java.util.Date(time.getValue())));
结果: 6 Nov 2015 14:29:07
当用户点击此文本视图时,我会得到时间戳并以毫秒为单位进行转换
SimpleDateFormat dateFormat = new SimpleDateFormat("d MMM yyyy HH:mm:ss");
String time = text_view_time.getText().toString();
Date date = dateFormat.parse(time);
long miliseconds = date.getTime();
问题
从文本视图中的String对话获得的毫秒数不会匹配我从 DATETIME 对象获得的实际毫秒数。
DATETIME object miliseconds: 1351700038292
从字符串会话中获得的毫秒数 1351342452745
问题 我怎样才能正确地从DateTime实例获得毫秒?