Spirit
1

Формат даты в приложении

22.07.2009, 17:24. Показов 1883. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто подскажет, можно ли на VB для своего приложения установить определенный формат для даты, например ShortDate, при этом не меняя системные настройки? Буду очень признателен за помощь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2009, 17:24
Ответы с готовыми решениями:

Как изменять формат даты VB?
Всем привет. Кто нибудь может помочь в таком вопросе: как перед запуском своей программы...

Как определить локальный формат даты?
люди! как определить локальный формат даты? 'dd/mm/yyyy' или 'mm/dd/yyyy'

Независимость от локальных настроек системы (разделитель, формат даты). Возможно?
Очень хочется обмануть стандартные функции преобразования типов VB, чтобы они на любой машине...

Формат даты
Здравствуйте. Есть дата в ячейке а1 в формате, например 11-12 мая 2017 года, Как с помощью vba, ...

8
Comanche
22.07.2009, 18:55 2
Нет. Но есть VB-функция Format().
Spirit
23.07.2009, 10:46 3
Format() - это конечно хорошо, но на выходе она дает строку, а мне необходима дата (для сравнения).
Irokez
23.07.2009, 11:05 4
можно сделать так:
применить Format к обоим входящим датам,
а потом CDate преобразовать обратно в
дату и сравнивать. Я сам не проверял, но
думаю, должно сработать.
Spirit
23.07.2009, 11:24 5
Имеем, например, в системных установках формат даты: 'гггг-ММ-дд'.
При попытке выполнить СDate(Format(MD,'dd.mm.yyyy')), вылезает ошибка 'Несоответствие типов'. Проверено.

Может есть другой путь, а я не понимаю. Напишу конкретней. Создал свой ActiveX Calendar. Все написано, кроме реакции на формат даты отличный от 'dd.mm.yyyy'. Если пытаться писать редактирование всех возможных форматов даты (а их можна придумать кучу) - это не реально.
Вот мне и надо, чтобы при инициализации элемента устанавливался один формат. Со строками все хорошо, но мне нужен тип 'Дата', а при попытке преобразовать VB пытается использовать системный формат

Что я не правильно делаю?
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 26
23.07.2009, 15:13 6
Мне кажется, не стоит пользоватся 'зашитом в коде' форматом даты,
лучше использовать системные установки формата даты.

-- API --
GetUserDefaultLCID - локальный контекст
GetLocaleInfo - подробная информация о локальном контексте
0
Spirit
23.07.2009, 15:32 7
Я смотрел эти функции - они только получают инфу. Нужный контекст и системный формат даты я могу и из реестра получить. Проблема не в получении этой информации. Что толку если я получу формат даты 'm-dd-y'? Мне надо чтобы мой ActiveX работал только с форматом 'dd.mm.yyyy' не зависимо от того, как пользователь захочет извратиться над форматом.

Все было бы просто, если результатом выражения CDate('dd.mm.yyyy') была бы получена дата в том самом системном формате 'm-dd-y'. НО, VB ругается и говорит о несответствии типов
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
23.07.2009, 16:39 8
Используй DateSerial для создания даты и DateDiff для сравнения дат.
0
Spirit
23.07.2009, 16:58 9
DateSerial, DateDiff подходят, но я думаю получится корявенько.
Решение найдено такое: всем переменным, константам, значениям свойств оставить тип 'Date', а изменить лишь отображение даты в поле контрола, написав соответственно функцию перевода в нужный формат (буквально пару строк).

Спасибо всем, кто откликнулся, за помощь и за желание помочь.
Вопрос снят.
23.07.2009, 16:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.07.2009, 16:58
Помогаю со студенческими работами здесь

Формат времени и даты
Как перевести 2016.12.31 15:45 в 2016.12.31 15:45 ? Добавлено через 6 минут Как перевести...

Формат даты в VBA
Всем привет Столкнулся с проблемой, корни которой, по-видимому, знаю, но решить ее затрудняюсь ...

Формат даты (американский и не очень)
Есть форма на ней 2 текстбокса, отформатированные для ввода даты есть 2 ячейки с форматом даты ...

Неверно распознается формат даты
Может кто-то за деньги помочь написать функцию для работы с буфером обмена в excel? Задача: При...

Задать собственный формат даты
мне нужно, чтобы дата прописывалась в формате "21" января 2001 г. как это реализовать????мм

Неправильный формат даты в автофильтре
Есть столбец с различными датами, все даты в одном формате. Стоит автофильтр. Надо средствами VBA...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru