2016-05-24 9 views
0

Ich entwickle eine Chat-Anwendung. Wenn ich online bin, ist das Senden und Empfangen von Nachrichten mit aktuellem Datum und Uhrzeit in Ordnung. Aber wenn ich offline wieder nach 2 Stunden online komme, erhalte ich Nachrichten mit der aktuellen Zeit selbst, aber ich möchte die Nachrichtenzeit mit Absenderzeit erhalten. Hilf mir dabei.So erhalten Sie Zeitstempel-Nachrichten mit Absenderzeit

Vielen Dank im Voraus.

senden Teil

  if (connection != null) { 
       connection.sendPacket(msg); 
       data = new Msg(); 
       data.setMessage(text); 
       data.setSenderName(userFrom); 
       String date = DateAndTime.getCurrentDate(); 
       data.setDate(date); 
       String time = DateAndTime.getCurrentTime(); 
       data.setTime(time); 
       data.setSender(true); 
       MessageListAdapter.messagesItems.add(data); 
       notifyMyAdapter(); 
      } 

Empfangsteil

if (connection != null) { 
     // Add a packet listener to get messages sent to us 
     PacketFilter filter = new MessageTypeFilter(Message.Type.chat); 
     connection.addPacketListener(new PacketListener() { 
      @Override 
      public void processPacket(Packet packet) { 
       Message message = (Message) packet; 
       String from = to + "@localhost/Smack"; 
       if (from.equalsIgnoreCase(message.getFrom())) { 
        if (message.getBody() != null) { 
         String fromName = StringUtils.parseBareAddress(message.getFrom()); 
         Msg data = new Msg(); 
         String subject = message.getSubject(); 
         if (subject == null) { 
          String text = message.getBody(); 
          data.setMessage(text); 
          data.setSenderName(NAME); 
          String date = DateAndTime.getCurrentDate(); 
          data.setDate(date); 
          String time = DateAndTime.getCurrentTime(); 
          data.setTime(time); 
          data.setSender(false); 
          MessageListAdapter.messagesItems.add(data); 

          // Add the incoming message to the list view 
          mHandler.post(new Runnable() { 
           public void run() { 
            notifyMyAdapter(); 
           } 
          }); 
        } 
       } 
      } 
     }, filter); 
    } 

Antwort

0

Ich glaube, alles, was Sie tun müssen, ist, während die Nachricht zu veröffentlichen data.setCreatedAtTime(System.currentTimeMillis(); die gute Sache über System.currentTimeMillis(); ist, dass es in der Epoche und millisecondsformat und würde über alle timeZones konstant bleiben. jetzt auf der Empfängerseite können Sie die Millisekunden in das Format konvertieren, das Sie wünschen