Преобразование Unix устанавливает метку времени к YYYY-MM-DD HH:MM:SS

Вы могли также использовать

$(this).find('img');

, который возвратит весь img с, которые являются потомками div

5
задан Baggins 14 August 2009 в 20:48
поделиться

5 ответов

Отказ от ответственности: следующий код не учитывает високосные годы или високосные секунды [Unix-время не учитывает високосные секунды. В любом случае, они переоценены. -Ed] . Также я не тестировал, поэтому могут быть ошибки. Это может пнуть вашу кошку и оскорбить вашу мать. Хорошего дня.

Давайте попробуем небольшой псевдокод (Python, правда):

# Define some constants here...

# You'll have to figure these out.  Don't forget about February (leap years)...
secondsPerMonth = [ SECONDS_IN_JANUARY, SECONDS_IN_FEBRUARY, ... ]

def formatTime(secondsSinceEpoch):
    # / is integer division in this case.
    # Account for leap years when you get around to it :)
    year = 1970 + secondsSinceEpoch / SECONDS_IN_YEAR
    acc = secondsSinceEpoch - year * SECONDS_IN_YEAR

    for month in range(12):
        if secondsPerMonth[month] < acc:
            acc -= month
            month += 1

    month += 1

    # Again, / is integer division.
    days = acc / SECONDS_PER_DAY
    acc -= days * SECONDS_PER_DAY

    hours = acc / SECONDS_PER_HOUR
    acc -= hours * SECONDS_PER_HOUR

    minutes = acc / SECONDS_PER_MINUTE
    acc -= minutes * SECONDS_PER_MINUTE

    seconds = acc

    return "%d-%d-%d %d:%d%d" % (year, month, day, hours, minutes, seconds)

Если я ошибся, дайте мне знать. Сделать это на C не должно быть слишком сложно.

6
ответ дан 13 December 2019 в 22:12
поделиться

Вы действительно не хотите делать это вручную. Вы можете написать простой код, который предполагает, что годы, месяцы, дни, часы, минуты и секунды имеют одинаковую длину (12 месяцев, 28, 30 или 31 день, 24 часа, 60 минут и 60 секунд), и с неправильным ответом.

Чтобы получить правильный ответ, вы должны обработать високосные годы и високосные секунды и преобразовать их в местный часовой пояс ( с правым режимом DST ). (Если вы не выбрали отображение только по времени UTC.)

Я предлагаю вам взглянуть на код glibc и посмотреть, как работает strftime .


Edit: Время UNIX не использует дополнительную секунду.

2
ответ дан 13 December 2019 в 22:12
поделиться

Не позволяет DataGridView отображать свойство:

[System.ComponentModel.Browsable(false)]
public String LastActionID{get; private set;}

Позволяет настроить удобное отображение для компонентов (таких как DataGrid или DataGridView):

[System.ComponentModel.DisplayName("Last Action")]
public String LastAction{get; private set;}

Для ваших поддерживающих переменных, если вы не хотите, чтобы к ним обращались напрямую, это усложняет задачу:

1
ответ дан 13 December 2019 в 22:12
поделиться

Вам не нужно заниматься математикой. С этим легко справиться в C следующим образом:

char *ISO_Time (
    time_t                  time
)

{
    static char             mStr[128];
    struct tm              *gmt;

    gmt = gmtime (&time);

    strftime (mStr, sizeof(mStr), "%Y-%m-%dT%H:%M:%SZ", gmt);

    return mStr;
}

Поскольку ваше время не совсем соответствует ISO, вам просто нужно изменить одну строку,

strftime (mStr, sizeof(mStr), "%Y-%m-%d %H:%M:%S", gmt);
0
ответ дан 13 December 2019 в 22:12
поделиться

Вы должны были выполнить поиск - я опубликовал полный ответ на этот вопрос здесь на днях (по крайней мере, для UTC - чтобы настроить другие часовые пояса, просто добавьте или вычтите смещение часового пояса в секундах из unixtime перед вызовом функции).

1
ответ дан 13 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

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