2013-08-07 3 views
0

Очень распространено, что приложение имеет проблемы с датой даты с системным именем, форматом отображения или инструкцией T-SQL. В настоящее время я начинаю новый проект и ищу стандартное решение для обработки дат.Управление проблемами с датой времени

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

Пожалуйста, предложите мне лучший способ справиться с датой в C# с использованием .NET Framework 4.0, которые работают со всей датой системы форматом

+0

Я бы предложил использовать хорошее решение ORM (реляционное сопоставление объектов), которое позаботится об этом для вас. – Aphelion

+3

Большинство проблем с форматированием даты возникают из-за того, что данные хранятся в строках (в отличие от более подходящих типов данных) дольше, чем необходимо. Строки должны анализироваться как можно раньше из пользовательского ввода, а форматирование должно выполняться только в коде, который непосредственно отображает даты на выходе. –

+0

@Damien_The_Unbeliever +1, я бы также добавил, чтобы иметь дело только с UTC. –

ответ

1

Есть много способов, но я упомяну 2 я использую чаще.

  1. Используйте объект SqlCommand и передайте параметры Date как DateTime в поле времени даты в db.

  2. Используйте стандартный формат даты SQL «yyyy-MM-dd HH: mm: ss.ttt», чтобы передавать даты в виде строки в поле времени даты в db.

Надеюсь, это поможет.

0

Universal Dateformat будет предпочтительнее всего времени при передаче даты от приложения к sql-погоде в сравнении между датами в sql; универсальный формат иконок для дат и выполнять в соответствии со стандартами даты.

Вы можете использовать универсальный формат даты «2013-08-31 10: 04: 44.000» или «20130831».

И вы также можете создать метод расширения (C# 3.0+) и использовать этот метод во всем приложении.

0

Вы можете преобразовать ваш объект datetime в формат ISO 8601 и передать его SQL Server.

Вы можете преобразовать DateTime в ISO 8601, как показано ниже, а также проверить Standard Datetime format string:

myDateTime.ToString("s") 

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

Given a DateTime object, how do I get an ISO 8601 date in string format?

В базе данных никогда не хранится дата, а строка only datetime и never format datetime at database level.

Смежные вопросы