Как конвертировать дату с 2018-04-29 в формат до 29 апреля 2018 года?

Стек - лучший инструмент для задания: -

import re
def matches(line, opendelim='(', closedelim=')'):
    stack = []

    for m in re.finditer(r'[{}{}]'.format(opendelim, closedelim), line):
        pos = m.start()

        if line[pos-1] == '\\':
            # skip escape sequence
            continue

        c = line[pos]

        if c == opendelim:
            stack.append(pos+1)

        elif c == closedelim:
            if len(stack) > 0:
                prevpos = stack.pop()
                # print("matched", prevpos, pos, line[prevpos:pos])
                yield (prevpos, pos, len(stack))
            else:
                # error
                print("encountered extraneous closing quote at pos {}: '{}'".format(pos, line[pos:] ))
                pass

    if len(stack) > 0:
        for pos in stack:
            print("expecting closing quote to match open quote starting at: '{}'"
                  .format(line[pos-1:]))

В клиентском коде, поскольку функция записывается как функция генератора, просто используйте шаблон for loop для разворачивания совпадений: -

line = '(((1+0)+1)+1)'
for openpos, closepos, level in matches(line):
    print(line[openpos:closepos], level)

Этот тестовый код выводит следующий на моем экране, заметил, что второй параметр в распечатке указывает глубину в скобках.

1+0 2
(1+0)+1 1
((1+0)+1)+1 0
0
задан chŝdk 13 July 2018 в 10:01
поделиться

5 ответов

2
ответ дан chŝdk 17 August 2018 в 13:32
поделиться
-1
ответ дан Junting Zhu 17 August 2018 в 13:32
поделиться
var givenDate = '2018-04-29'
var resultDate = moment(givenDate, 'YYYY-MM-DD').format('DD MMM, YYYY')
1
ответ дан Mani Kumar 17 August 2018 в 13:32
поделиться

Momentjs должен делать то, что вы хотите, просто отлично. (см. ответ Li357).

Если вы ищете альтернативы, вы можете проверить:

0
ответ дан Mehmet Fatih Yıldız 17 August 2018 в 13:32
поделиться

Если момент не работает для вас, вы можете использовать vanilla js следующим образом:

const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

// Date to convert
let myDate = "2018-04-29";
let components = myDate.split('-'); 

// 29 Apr, 2018
let newDate = components[2] + " " +monthNames[parseInt(components[1]) - 1] +", " +components[0];
console.log(newDate);

0
ответ дан Nick Parsons 17 August 2018 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: