1614234446082ms 是什么意思以及如何限制它(JDA Java Discord Bot)
What Does 1614234446082ms Mean and How can You Limit It(JDA Java Discord Bot)
我正在尝试制作一个会响应您的 ping 的乒乓机器人。问题是它的响应是这样的:
Pong!
1614234538419%d ms
谁能解释一下这是什么意思?另外,如果可以的话,有没有办法简化这个?
这是代码:
package Events;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class PingPong extends ListenerAdapter {
@Override
public void onMessageReceived(MessageReceivedEvent e) {
Message msg = e.getMessage();
long time = System.currentTimeMillis();
if (msg.getContentRaw().equalsIgnoreCase("!ping")) {
e.getChannel().sendMessage("Pong!").queue();
e.getChannel().sendMessage(time + "ms").queue();
};
}
}
System.currentTimeMillis()
returns 自 Unix 纪元开始以来的毫秒数,即 1.1.1970 UTC 午夜。我不确定你的目的是什么,但如果你想测量时间,你需要计算两个时间点的相对差异,例如
long start = System.currentTimeMillis();
// do some long computation
long end = System.currentTimeMillis();
System.out.println("Computation took " + (end - start) + " ms");
如果您要查找 return 当前时间,您可以使用 LocalDateTime.now()
(不带时区)或 ZonedDateTime.now()
(带时区)。注意 return 是一个对象——如果你想打印一些字符串表示,你可以使用 DateTimeFormatter
并传递你想要使用的格式:
LocalDateTime date = LocalDateTime.now();
DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date)
行 e.getChannel().sendMessage(time + "ms").queue()
写入自 unix epoch. That specific value means“2021 年 2 月 25 日星期四 06:27:26 GMT+0000”开始以来的当前时间(以毫秒为单位)。
您可以删除此行。或者使用一种方法将数字转换为字符串。我不是 Java 程序员,但肯定有一些方法。
我正在尝试制作一个会响应您的 ping 的乒乓机器人。问题是它的响应是这样的:
Pong!
1614234538419%d ms
谁能解释一下这是什么意思?另外,如果可以的话,有没有办法简化这个? 这是代码:
package Events;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class PingPong extends ListenerAdapter {
@Override
public void onMessageReceived(MessageReceivedEvent e) {
Message msg = e.getMessage();
long time = System.currentTimeMillis();
if (msg.getContentRaw().equalsIgnoreCase("!ping")) {
e.getChannel().sendMessage("Pong!").queue();
e.getChannel().sendMessage(time + "ms").queue();
};
}
}
System.currentTimeMillis()
returns 自 Unix 纪元开始以来的毫秒数,即 1.1.1970 UTC 午夜。我不确定你的目的是什么,但如果你想测量时间,你需要计算两个时间点的相对差异,例如
long start = System.currentTimeMillis();
// do some long computation
long end = System.currentTimeMillis();
System.out.println("Computation took " + (end - start) + " ms");
如果您要查找 return 当前时间,您可以使用 LocalDateTime.now()
(不带时区)或 ZonedDateTime.now()
(带时区)。注意 return 是一个对象——如果你想打印一些字符串表示,你可以使用 DateTimeFormatter
并传递你想要使用的格式:
LocalDateTime date = LocalDateTime.now();
DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date)
行 e.getChannel().sendMessage(time + "ms").queue()
写入自 unix epoch. That specific value means“2021 年 2 月 25 日星期四 06:27:26 GMT+0000”开始以来的当前时间(以毫秒为单位)。
您可以删除此行。或者使用一种方法将数字转换为字符串。我不是 Java 程序员,但肯定有一些方法。