如何获取带有发件人时间的时间戳消息
Posted
技术标签:
【中文标题】如何获取带有发件人时间的时间戳消息【英文标题】:How to get time stamp messages with sender time 【发布时间】:2016-05-24 11:09:29 【问题描述】:我正在开发一个聊天应用程序。如果我在线,发送和接收当前日期和时间的消息就可以了。但是,如果我在 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);
【问题讨论】:
【参考方案1】:我认为您所要做的就是在发布消息时data.setCreatedAtTime(System.currentTimeMillis();
System.currentTimeMillis();
的好处是它采用纪元和毫秒格式,并且在所有时区中保持不变。
现在在接收方,您可以将毫秒转换为您想要的任何格式
【讨论】:
以上是关于如何获取带有发件人时间的时间戳消息的主要内容,如果未能解决你的问题,请参考以下文章
如何使用实体框架和 MySQL 获取每个组的最新记录,包括相关实体
如何使用 facebook fql 获取消息未知收件人的电子邮件或姓名而不是 0?