WP8 Toolkit DatePicker возвращает формат значения
Есть ли способ, где вы можете изменить возвращаемое значение из DatePicker в формате "гггг-ММ-дд"? Я вставляю значение в базу данных SQLite, поэтому оно должно быть в этом формате, чтобы иметь возможность выполнять операторы datetime() для значений.
DateTime formatStartDate = DateTime.Parse(StartDate);
StartDate= formatStartDate.ToString("yyyy-dd-MM");
DateTime formatEndDate = DateTime.Parse(EndDate);
EndDate = formatEndDate.ToString("yyyy-dd-MM");
Это то, с чем я шел, и это в какой-то степени работает. Когда у меня есть строка "yyyy-MM-dd", она меняет все вокруг и вставляет в базу данных как "yyyy-dd-MM", поэтому мне пришлось изменить строку на "yyyy-dd-MM" на обойти эту проблему, и он вставляет, как я хочу, в базу данных в формате "гггг-мм-дд" (странно).
Я мог бы работать с этим, так как он делает то, что я хочу, даже если это не имеет смысла, но когда я пытаюсь проверить StartDate и EndDate, чтобы даты до "сейчас" не могли быть выбраны, все должно быть запутано, потому что в моем коде так много разных форматов дат, и он пытается сравнить форматированные даты сверху со значением даты по умолчанию, которое идет с DatePicker.
Как я проверяю;
if (DateTime.Parse(StartDate) < DateTime.Now)
MessageBox.Show("Please select a start date that is today or in the future.");
if (DateTime.Parse(EndDate) < DateTime.Now)
MessageBox.Show("Please select an end date that is today or in the future.");
Похоже, такое простое исправление, но я не могу найти способ обойти это онлайн. Кажется, что большинство постов или статей, которые я читаю, имеют дело только с внешним интерфейсом. Есть ли способ, которым я могу изменить значение, возвращаемое из DatePicker как "yyyy-MM-dd"?
(StartDate и EndDate являются строками, привязанными к DatePickers)
РЕДАКТИРОВАТЬ;
<tk:DatePicker
Grid.Row="1"
Grid.Column="0"
FontSize="20"
Value="{Binding StartDate, Mode=TwoWay}"
Background="LightGray"
Foreground="#b71918"
BorderThickness="0"
Width="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"/>
<tk:DatePicker
Grid.Row="1"
Grid.Column="1"
FontSize="20"
Value="{Binding EndDate, Mode=TwoWay}"
Background="LightGray"
Foreground="#b71918"
BorderThickness="0"
Width="200"
HorizontalAlignment="Left"
VerticalAlignment="Top"/>
В моей кнопке сохранения (я хочу, чтобы формат был "yyyy-MM-dd", но он изменяется на "yyyy-dd-MM" при вставке, поэтому я отформатировал как "yyyy-dd-MM" и вставил как "yyyy- ММ-дд ", как я на самом деле хочу);
DateTime formatStartDate = DateTime.Parse(StartDate);
string fsd = formatStartDate.ToString("yyyy-dd-MM");
DateTime formatEndDate = DateTime.Parse(EndDate);
string fed = formatEndDate.ToString("yyyy-dd-MM");
// gets all confused cause of the above formatting
if (DateTime.Parse(StartDate) < DateTime.Now)
MessageBox.Show("Please select a start date that is today or in the future.");
if (DateTime.Parse(EndDate) < DateTime.Now)
MessageBox.Show("Please select an end date that is today or in the future.");
var insertGoal = new GoalsTrackerModel
{
GoalName = GoalName,
GoalDesc = GoalDesc,
StartDate = fsd,
EndDate = fed,
IsOpen = 1,
IsComplete = 0
};
_dbHelper.Insert<GoalsTrackerModel>(insertGoal);
MessageBox.Show("New goal saved. Good luck!");
public string StartDate
{
get { return _startDate; }
set
{
if (_startDate != value)
_startDate = value;
OnPropertyChanged("StartDate");
}
}
public string EndDate
{
get { return _endDate; }
set
{
if (_endDate != value)
_endDate = value;
OnPropertyChanged("EndDate");
}
}