Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Есть дата вида "31 Jan 04 00:50:24" как ее из VB или VBA преобразовать к виду "31-01-2004 00:50:24" ? Все получилось, НО часть строки "31 Jan 04" не получается преобразовать в "01-01-2004". Пробовал Cdate, format и т.д. Уже клинит..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 20:41 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
31-е января в 1-е преобразовать довольно сложно :) Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2004, 20:59 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Если бы все так было просто! Код: plaintext 1. На aDate = "31 Jan 04 00:50:24" ошибка Type mismatch (Error 13) Если делать Dim sDate As String aDate = "31 Jan 04 00:50:24" MsgBox Format$(aDate, "dd-m-yyyy hh:mm:ss") то все равно дата остается "31 Jan 04 00:50:24" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 09:32 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
MikeTech НО часть строки "31 Jan 04" не получается преобразовать в "01-01-2004"... так не будет ты хочешь превратиь 31 января в 1 января! волшебник что-ли? а так все через format идет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 13:16 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 14:14 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Мда. Нужно мутить с локальными установками машины. 2 MikeTech Какой у тебя формат, в Regional settings? Версия васика? SP? btw, код я постил из окна vb. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 16:29 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Magnus23Мда. Нужно мутить с локальными установками машины. 2 MikeTech Какой у тебя формат, в Regional settings? Версия васика? SP? btw, код я постил из окна vb. Magnus Time H:mm:ss Date dd.MM.yyyy long d MMMM yyyy 'г.' пишу в vba под word, W2000P SP4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 16:42 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
2 Magnus23 это конечно не красиво - использовать предопределённый масив названий месяцев, но на время работы программы - менять менять локальные установки - ещё хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 16:43 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
marvan2 Magnus23 это конечно не красиво - использовать предопределённый масив названий месяцев, но на время работы программы - менять менять локальные установки - ещё хуже. Не менять а читать и работать исходя из текущих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 16:51 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
2 MikeTech Весьма странно. Только что установил твой формат, запустил тот же код в макросе VBA, результат одинаков. Код отработал без проблем. Причем пробовал штук 5 разных форматов, все ок. Не знаю играет ли какую-то роль версия ворда, в vba я не специалист. Офис русский? Может еще кто попробует? Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 17:01 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
marvanSplit есть только в VB6, в VBA и VB5 - задавайте массив другим способом В Office 2000/XP VBA есть подмножество VB6 (см. About...). Поэтому функция Split доступна: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 10:23 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Magnus23Весьма странно. Только что установил твой формат, запустил тот же код в макросе VBA, результат одинаков. Код отработал без проблем. Причем пробовал штук 5 разных форматов, все ок. Не знаю играет ли какую-то роль версия ворда, в vba я не специалист. Может еще кто попробует? Попробовал. Regional Settings: Russia И в Office 2000, и в OfficeXP SP3 (MUI) выдаёт Type mismatch. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 12:42 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Версия Magnus23 Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 15:47 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Magnus232 MikeTech Весьма странно. Только что установил твой формат, запустил тот же код в макросе VBA, результат одинаков. Код отработал без проблем. Причем пробовал штук 5 разных форматов, все ок. Не знаю играет ли какую-то роль версия ворда, в vba я не специалист. Офис русский? Может еще кто попробует? Magnus Русский. W2000 (9.0.3821 SR-1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 16:09 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Согласен. Но есть еще одна странность. У меня настройки португальские, т.е. длинная дата выглядит так "31 de Jan de 04 00:50:24" Но тем не менее схавала. Думаю в этом случае проще делать Replace месяца в соответствиии с региональными установками и далее обычным образом. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 16:23 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Magnus23Думаю в этом случае проще делать Replace месяца в соответствиии с региональными установками и далее обычным образом. А если дата вида "31 Jan 04 00:50:24" - получена исходно в виде строки? Например из БД или текстового файла? А это скорее всего так и есть. При чём здесь региональные установки? Очень может быть, что названия месяцев в приведённом мной массиве - не совпадают с остальными месяцами (у меня для английского, а может это норвежский). Но как по дате определить при каких региональных установках она была сформирована и самое главное - зачем это делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 16:45 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
А что мучиться, сделай в лоб. Например так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. это я для себя так делал работает вроде не жалуюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 16:57 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
А если дата вида "31 Jan 04 00:50:24" - получена исходно в виде строки? Я имел ввиду, в зависимости от региональных установок делать замену месяца. Т.е. если русский то заменять на русский. Пару enum'ов прописать проблемы не составляет думаю. В любом случае, все варианты предусмотреть не получиться. Ты же не переводишь свой софт на все языки мира? Если есть конкретная проблема в поддержке русских и английски длинных дат(которые наиболее распространены), то такой ваиант не так уж плох. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 17:00 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
В общем случае вряд ли получится такую задачу решить, придется писать парсер строк/конвертер. Вообще проблема преобразования даты из строки -"веселая" проблема. Особенно если эту дату вводила какая нибудь древняя программа и сохраняла ее в текстовом файле. Особенно если она еще и не автоматически формировалась, а заполнялась пользователем. По существу, Могу предложить еще передать ее на сервер БД и конвертировать там. Хотя это противоречит постановке задачи "средствами VB или VBA", может создать лишний round-trip, но вдруг кому-то поможет. Например, для MSSQL MSSQLSELECT CONVERT(datetime,'31 Jan 04 00:50:24') ------------------------------------------------------ 2004-01-31 00:50:24.000 (1 row(s) affected) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 17:13 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Мне понравилась идея конвертить дату на SQL Servere. Это наверное был прикол такой :) / Мне это напоминает как в одном фильме зубы лечили через жопу :) Сорри если кто обиделся. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 17:18 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
MegaDimonМне понравилась идея конвертить дату на SQL Servere. Это наверное был прикол такой :) / Мне это напоминает как в одном фильме зубы лечили через жопу :) Сорри если кто обиделся. :) А это смотря какая задача стоит. Если это задача импорта старых данных в новую базу (довольно частая задача), то конвертация их на сервере - вполне приемлемый вариант, т.к. данные все равно надо записать в базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 17:24 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Согласен, если паботает с БД то я двумя руками за такой метод, но если человеку нужно всего лишь конвертировать данные из строки ввода, то нужен другой способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 17:32 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Задача стоит в преобразовании из текстового файла в Access, соответственно там есть поле с датой. в файле дата в формате "31 Jan 04 00:50:24" и т.д. Судя по топикав из других форумов нужно инсертить в формате YYYYDDMM hhmiss. Вот такая вот задачка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 20:10 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
так задача вроде решена? -приведённый мной пример чем не устраивает? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 10:07 |
|
||
|
Преобразование в дату.
|
|||
|---|---|---|---|
|
#18+
Господа, проблема преобразования решена по предложенному marvan методу. Остается проблема работы функции format Так как имеем на входе Код: plaintext Код: plaintext "#01.19.04 02:57:24#" Хотя должно быть не так. Пишется в word200 vba w200 sp4 После Код: plaintext Пример кода ниже, ошибка происходит на строке rst!Dat = Msg.Dat Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Испльзовал faq http://www.sql.ru/faq/faq_topic.aspx?fid=157 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:14 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32720544&tid=2168794]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 444ms |

| 0 / 0 |
