Макрос Excel: Как я могу получить метку времени в формате «гггг-мм-дд чч: мм: сс»?

45

Я использую DateTime.Now в своем макросе Excel, чтобы показать текущую временную метку.

Показывает временную метку в формате "dd-MM-yyyy hh: mm: ss".

Вместо этого, как я могу получить метку времени в формате "yyyy-MM-dd hh: mm: ss"?

Теги:
excel-vba
excel

7 ответов

74
Лучший ответ

Попробуйте: format(now(), "yyyy-MM-dd hh:mm:ss")

31

DateTime.Now возвращает значение типа данных Date. Даты даты отображают даты в соответствии с коротким форматом даты и временем, установленным на вашем компьютере.

Они могут быть отформатированы как строка для отображения в любом допустимом формате даты с помощью функции Format, как указано в других ответах

Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")
5
Format(Now(), "yyyy-MM-dd hh:mm:ss")
2

Если некоторые пользователи кода имеют разные языковые настройки, формат может не работать. Таким образом, я использую следующий код, который дает отметку времени в формате "yyymmdd hhMMss" независимо от языка.

Function TimeStamp()
Dim iNow
Dim d(1 To 6)
Dim i As Integer


iNow = Now
d(1) = Year(iNow)
d(2) = Month(iNow)
d(3) = Day(iNow)
d(4) = Hour(iNow)
d(5) = Minute(iNow)
d(6) = Second(iNow)

For i = 1 To 6
    If d(i) < 10 Then TimeStamp = TimeStamp & "0"
    TimeStamp = TimeStamp & d(i)
    If i = 3 Then TimeStamp = TimeStamp & " "
Next i

End Function
1

это работало лучше всего для меня:

        Cells(partcount + 5, "N").Value = Date + Time
        Cells(partcount + 5, "N").NumberFormat = "mm/dd/yy hh:mm:ss AM/PM"
1

Скопируйте и вставьте этот формат yyyy-mm-dd hh: MM: ss в ячейки формата, нажав категорию таможни в разделе Тип

-1

Используйте функцию "Формат".

Format(Date, "yyyy-mm-dd hh:MM:ss")
  • 0
    Не работает! Date содержит только календарную дату, но часы, минуты и секунды установлены на 0:00:00! Вы должны использовать Now() вместо ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню