Как мы можем решить проблему даты и времени, переводя Access DB с рабочего сервера на живой - PullRequest
3 голосов
/ 03 апреля 2009

Можете ли вы посоветовать лучший способ исправить проблемы с часовыми поясами в .Net. Недавно я разработал простой веб-сайт, используя asp.net C # в качестве кода и MS Access в качестве бэкэнда.

Мой рабочий сервер и действующие серверы имеют разную настройку даты и времени. Формат даты на моем сервере продукта: дд-мм-гггг

формат живого сервера: мм-дд-гггг.

Я сталкиваюсь с ошибкой, когда я пытался привести дату и время в передний конец. «Строка не была распознана как действительный DateTime.»

Дата, которую я пытаюсь разыграть, была заполнена на моем производственном сервере, она отлично работает на производственном сервере. но когда я помещаю файл доступа в живой сервер, я сталкиваюсь с вышеуказанной ошибкой. любая помощь будет высоко ценится

Ответы [ 6 ]

2 голосов
/ 03 апреля 2009

Вместо этого конвертируйте дату в формат даты ISO - ГГГГ-ММ-ДД. Когда вы переводите его в этот формат, возникает двусмысленность ZERO, и функции даты MS всегда это понимают.

2 голосов
/ 03 апреля 2009

Как правило, преобразование DateTime в / из строки без указания точного формата почти всегда является плохой идеей.

1 голос
/ 04 апреля 2009

это то, что я делаю ВСЕГДА при работе с датами и временем в моем интерфейсе: укажите мой собственный точный формат (обычно это ДД / МММ / ГГГГ - таким образом, я уверен, что моя часть дня всегда числовая, строка части месяца и год часть 4-х значное число

также - ИСПОЛЬЗУЙТЕ DateTime.ParseExact вместо DateTime.Parse. таким образом, нет никакой двусмысленности с кодом переднего конца.

Еще 1 совет - если вы используете c # 3.5, я бы порекомендовал вам создать метод расширения для класса datetime, где вы на самом деле HARDCODE свой конкретный формат для данного приложения, а затем вместо предоставления вашего формата в 10 различных места, где вы конвертируете, просто позвоните по этому методу расширения

таким образом, если по какой-либо причине вы хотите изменить свой формат позже, вам просто нужно изменить 1 метод расширения: -)

0 голосов
/ 03 апреля 2009

В запросах на вставку / обновление Access ожидает даты в формате мм / дд / гггг независимо от региональных настроек.

0 голосов
/ 03 апреля 2009

У вас есть несколько вариантов, наиболее логичным было бы просто преобразовать значения в этом столбце в новый формат после продвижения из производственной среды в вашу живую среду.

Тем не менее, я бы скорее подчеркнул, что рекомендуется иметь максимально приближенную к рабочей среде среду тестирования / разработки / qa, поэтому переконфигурирование всех ваших серверов для использования одного и того же формата поможет избежать этой проблемы. .

0 голосов
/ 03 апреля 2009

Я прошу прощения, что я не делаю c #, но в VB я делаю следующее (это общая проблема с Access)

myNewDate = cdate (формат (DateIn, "мм / дд / гг"))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...