Я ищу способ преобразовать id пользователя в дискорде на сегодняшний день, но я еще не понял, как это сделать👇
У меня есть этот небольшой код, созданный в python
import datetime
def snowflake_time(id):
return datetime.datetime.utcfromtimestamp(((id >> 22) + 210801244770402304) / 1000)
Но это не работает
Может ли кто-нибудь помочь мне, большое спасибо!






Вы добавляете неверное значение в часть метки времени.
Согласно статье Википедии Snowflake ID, все даты начинаются с эпохи Twitter, что составляет 1288834974657 миллисекунды от эпохи Unix. Таким образом, чтобы преобразовать временную метку Snowflake ID в миллисекунды из эпохи Unix, просто добавьте 1288834974657.
В свой код вы добавляете 210801244770402304. Не знаю, откуда вы взяли этот номер, но он неверный. Этот код работал для меня:
import datetime
def snowflake_time(snowflake):
return datetime.datetime.utcfromtimestamp(((snowflake >> 22) + 1288834974657) / 1000)
print(snowflake_time(1541815603606036480)) # => 2022-06-28 16:07:40.105000
@paulita Вам нужно вызвать и распечатать результат. Я просто добавил пример в свой ответ.
@paulita Если мой ответ был полезен, то, пожалуйста, подумайте о том, чтобы также проголосовать за него, чтобы еще раз указать, что он полезен. Рад был помочь!
да, проголосуйте сейчас, большое спасибо за вашу помощь
он становится пустым, как мне добавить идентификатор пользователя для отображения даты? i.imgur.com/gY29JHn.png