我正在开发一个聊天应用程序。如果我在线,发送和接收当前日期和时间的消息是好的。但如果我在2小时后再次离线上线,我会收到当前时间本身的消息,但我想收到发送时间的消息时间。帮助我解决这个问题。
提前致谢。
发送部分
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();
}
收到部分
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);
}
答案 0 :(得分:0)
我认为您所要做的就是发布消息data.setCreatedAtTime(System.currentTimeMillis();
关于System.currentTimeMillis();
的好处是,它处于纪元和毫秒格式,并且在所有时区都保持不变。
现在在接收方,您可以将毫秒转换为您想要的格式