Как оптимизировать код с time

Пытаюсь сделать уникальный код для id-продукта из даты и времени, т.е. (день недели + месяц + год + часы + минуты + секунды), код получился громоздким, как его упростить, получив тот же результат? В результате получаю код, к примеру: 3132022235137

мой код:

timeid = time.localtime(time.time())

a = str(timeid.tm_mday) + '#' + str(timeid.tm_mon) + '#' + str(timeid.tm_year) + '#' + str(
timeid.tm_hour) + '#' + str(timeid.tm_min) + '#' + str(timeid.tm_sec)

b = a.split('#')

c = "".join(b)

Ответы (3 шт):

Автор решения: Эникейщик

Зачем добавлять символ, чтобы его тут же удалить? Нужно убрать добавление # в переменную а, после этого остальные две строчки с b и c станут не нужны.

a = str(timeid.tm_mday) + str(timeid.tm_mon) + str(timeid.tm_year) + str(timeid.tm_hour) + str(timeid.tm_min)  + str(timeid.tm_sec)

Кстати, если нужно удалить какой-то символ, то проще применить replace, чем разбивать строку в список и потом соединять обратно.

И если уж вам хочется делать ID, основанный на времени, то берите сразу Unix-время

timeid = str(time.time()).replace(".","")

Точность там доли секунды и даже если выполнить дважды подряд, то будут разные значения.

→ Ссылка
Автор решения: Qwertiy

Не надо делать id на основе времени. В случае перевода часов они могут совпасть. Перевод может быть из-за синхронизации времени, перехода на летнее или зимнее время, смены часового пояса (как официального, так и, например, при перелёте с ноутбуком).

Лучше используй uuid.

→ Ссылка
Автор решения: eri

В подомном случае я использовал

version="1." + datetime.now().strftime('%Y.%m.%d-%H%M'),

Но можно и просто

datetime.now().strftime('%Y%m%d%H%M%S')

Год и месяц переносятся вперед чтоб при сортировке легко находить новую и старую версию.

→ Ссылка