如何从DateTime对象获得正确的毫秒数

时间:2015-11-06 14:23:20

标签: android datetime

我的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实例获得毫秒?

0 个答案:

没有答案