В функции отсутствует ()
, массиву нужно ()
после переменной при передаче его куда-то еще, поэтому VBA знает его как массив
Private Sub whatever()
Dim arr(10, 2) As String
workArray arr
End Sub
Sub workArray(ByRef arr() As String)
'- do stuff here
End Sub
Я немного осматриваюсь У cperson есть отличное руководство по передаче массивов в функции и обратно. В случае сомнений, проверьте cperson. У него есть масса полезных вещей, касающихся VBA
Date.strptime(
"2009-04-24 18:33:41 UTC",
"%Y-%m-%d %H:%M:%S %Z"
).strftime("%m/%d/%Y")
# => "04/24/2009"
I think maybe you just got the capitalization on your format strings wrong.
Вы можете использовать функцию String # to_time (или Date # to_time) в ActiveSupport для преобразования строки в объект Time (или Date). Затем используйте strftime, как вы уже сделали.
Большое спасибо за Ответить. Моя проблема в том, что вывод, кажется, уже строки, и мне нужно преобразовать дату в строку в другой формат.
Когда я смотрю на дату, хранящуюся в базе данных (Oracle), это мм / дд / гг, но когда я ее отображаю, добавляются метка времени и часовой пояс.
Я попытался установить значение по умолчанию в Configuration \ environment.rb как ActiveSupport :: CoreExtensions :: Дата :: Конверсии :: DATE_FORMATS.merge! ( : default => '% d% b% Y' ) Но это также, похоже, не помогает.
В конце, если я получу строку для преобразования из формата Timezone в mm / dd / yyyy, этого достаточно.
Что я сделал, это добавил инициализатор с именем conversions.rb в config / initializer После этого добавьте строку, как показано ниже:
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.update(:<name> => '<formatting>')
С этого момента вы можете отобразить дату и время, используя ваш формат, с помощью:
dateVar.to_s(:<name>)
Здесь есть удобный список здесь токенов форматирования
Я написал действительно хороший драгоценный камень, который упрощает весь процесс, и делает форматирование даты DRY.
Посмотрите на это: http://github.com/platform45/easy_dates