refactor: move the time formatting thing into TimeUtilities
This commit is contained in:
@@ -1 +1 @@
|
||||
3265
|
||||
3266
|
||||
@@ -6,6 +6,7 @@ import me.chayapak1.chomens_bot.command.CommandContext;
|
||||
import me.chayapak1.chomens_bot.command.CommandException;
|
||||
import me.chayapak1.chomens_bot.command.TrustLevel;
|
||||
import me.chayapak1.chomens_bot.util.StringUtilities;
|
||||
import me.chayapak1.chomens_bot.util.TimeUtilities;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.ClickEvent;
|
||||
import net.kyori.adventure.text.event.HoverEvent;
|
||||
@@ -26,10 +27,7 @@ import java.nio.ByteBuffer;
|
||||
import java.nio.channels.FileChannel;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -200,12 +198,13 @@ public class InfoCommand extends Command {
|
||||
case "botlogintime" -> {
|
||||
final long loginTime = bot.loginTime;
|
||||
|
||||
final Instant instant = Instant.ofEpochMilli(loginTime);
|
||||
final ZoneId zoneId = ZoneId.of("UTC");
|
||||
final OffsetDateTime localDateTime = OffsetDateTime.ofInstant(instant, zoneId);
|
||||
|
||||
final DateTimeFormatter loginTimeFormatter = DateTimeFormatter.ofPattern("MMMM d, yyyy, hh:mm:ss a Z");
|
||||
final String formattedLoginTime = localDateTime.format(loginTimeFormatter);
|
||||
final String formattedLoginTime = TimeUtilities.formatTime(
|
||||
loginTime,
|
||||
"MMMM d, yyyy, hh:mm:ss a Z",
|
||||
zoneId
|
||||
);
|
||||
|
||||
final DateFormat timeSinceFormatter = new SimpleDateFormat("HH 'hours' mm 'minutes' ss 'seconds'");
|
||||
timeSinceFormatter.setTimeZone(TimeZone.getTimeZone(zoneId)); // very important
|
||||
|
||||
@@ -10,15 +10,14 @@ import me.chayapak1.chomens_bot.data.mail.Mail;
|
||||
import me.chayapak1.chomens_bot.data.player.PlayerEntry;
|
||||
import me.chayapak1.chomens_bot.plugins.DatabasePlugin;
|
||||
import me.chayapak1.chomens_bot.util.I18nUtilities;
|
||||
import me.chayapak1.chomens_bot.util.TimeUtilities;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.JoinConfiguration;
|
||||
import net.kyori.adventure.text.event.HoverEvent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -129,12 +128,11 @@ public class MailCommand extends Command {
|
||||
for (final Mail mail : mails) {
|
||||
if (!mail.sentTo().equals(sender.profile.getName())) continue;
|
||||
|
||||
final Instant instant = Instant.ofEpochMilli(mail.timeSent());
|
||||
final ZoneId zoneId = ZoneId.systemDefault();
|
||||
final OffsetDateTime localDateTime = OffsetDateTime.ofInstant(instant, zoneId);
|
||||
|
||||
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy, hh:mm:ss a Z");
|
||||
final String formattedTime = localDateTime.format(formatter);
|
||||
final String formattedTime = TimeUtilities.formatTime(
|
||||
mail.timeSent(),
|
||||
"MMMM d, yyyy, hh:mm:ss a Z",
|
||||
ZoneId.of("UTC")
|
||||
);
|
||||
|
||||
mailsComponent.add(
|
||||
Component.translatable(
|
||||
|
||||
@@ -9,14 +9,12 @@ import me.chayapak1.chomens_bot.command.CommandContext;
|
||||
import me.chayapak1.chomens_bot.command.CommandException;
|
||||
import me.chayapak1.chomens_bot.command.TrustLevel;
|
||||
import me.chayapak1.chomens_bot.plugins.DatabasePlugin;
|
||||
import me.chayapak1.chomens_bot.util.TimeUtilities;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.JoinConfiguration;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -80,12 +78,11 @@ public class SeenCommand extends Command {
|
||||
if (time == null || time.isNull())
|
||||
throw new CommandException(Component.translatable("commands.seen.error.no_time_entry"));
|
||||
|
||||
final Instant instant = Instant.ofEpochMilli(time.asLong());
|
||||
final ZoneId zoneId = ZoneId.of("UTC"); // should i be using this?
|
||||
final OffsetDateTime localDateTime = OffsetDateTime.ofInstant(instant, zoneId);
|
||||
|
||||
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, MMMM d, yyyy, hh:mm:ss a Z");
|
||||
final String formattedTime = localDateTime.format(formatter);
|
||||
final String formattedTime = TimeUtilities.formatTime(
|
||||
time.asLong(),
|
||||
"EEEE, MMMM d, yyyy, hh:mm:ss a Z",
|
||||
ZoneId.of("UTC")
|
||||
);
|
||||
|
||||
final String server = lastSeen.get("server").asText();
|
||||
|
||||
|
||||
@@ -5,13 +5,13 @@ import me.chayapak1.chomens_bot.command.Command;
|
||||
import me.chayapak1.chomens_bot.command.CommandContext;
|
||||
import me.chayapak1.chomens_bot.command.CommandException;
|
||||
import me.chayapak1.chomens_bot.command.TrustLevel;
|
||||
import me.chayapak1.chomens_bot.util.TimeUtilities;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
|
||||
import java.time.DateTimeException;
|
||||
import java.time.Instant;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class TimeCommand extends Command {
|
||||
public TimeCommand () {
|
||||
@@ -30,11 +30,11 @@ public class TimeCommand extends Command {
|
||||
|
||||
final String timezone = context.getString(true, true);
|
||||
|
||||
final ZoneId zoneId = ZoneId.of(timezone);
|
||||
final ZonedDateTime zonedDateTime = ZonedDateTime.now(zoneId);
|
||||
|
||||
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, MMMM d, yyyy, hh:mm:ss a");
|
||||
final String formattedTime = zonedDateTime.format(formatter);
|
||||
final String formattedTime = TimeUtilities.formatTime(
|
||||
Instant.now().toEpochMilli(),
|
||||
"EEEE, MMMM d, yyyy, hh:mm:ss a",
|
||||
ZoneId.of(timezone)
|
||||
);
|
||||
|
||||
return Component.translatable(
|
||||
"commands.time.output",
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package me.chayapak1.chomens_bot.util;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class TimeUtilities {
|
||||
public static String formatTime (final long milliseconds, final String format, final ZoneId zoneId) {
|
||||
final Instant instant = Instant.ofEpochMilli(milliseconds);
|
||||
final OffsetDateTime localDateTime = OffsetDateTime.ofInstant(instant, zoneId);
|
||||
|
||||
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
||||
|
||||
return localDateTime.format(formatter);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user