Более понятный способ справиться с этим - просто сказать синтаксическому анализатору, что время выражено в GMT:
DateTime.fromSQL(current_time, {zone: "utc"}).toLocal()
Чтобы объяснить немного больше, то, что происходит в вашем оригинале, это то, что строка времениподразумевается как время по Гринвичу, но Люксон этого не знает.Таким образом, она интерпретирует строку как местное время, которое отличается от времени, которое вы подразумевали под смещением.Но если Luxon знает, что «это выражено в GMT», то в первую очередь он получит правильное время.