Skip to content

Commit 2eb07e6

Browse files
committed
Fix slightly different values causing some tests to fail
1 parent c28b649 commit 2eb07e6

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/Controls/src/Core/DatePicker/DatePicker.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ void ITextElement.OnTextTransformChanged(TextTransform oldValue, TextTransform n
154154

155155
static DateTime GetDefaultDate()
156156
{
157-
return DateTimeOffset.Now.DateTime;
157+
return DateTimeOffset.Now.DateTime.Date;
158158
}
159159

160160
/// <include file="../../docs/Microsoft.Maui.Controls/DatePicker.xml" path="//Member[@MemberName='UpdateFormsText']/Docs/*" />

src/Core/src/Platform/Android/DatePickerExtensions.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public static void UpdateMinimumDate(this MauiDatePicker platformDatePicker, IDa
3636
{
3737
if (datePickerDialog != null)
3838
{
39-
datePickerDialog.DatePicker.MinDate = (long)datePicker.MinimumDate.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
39+
datePickerDialog.DatePicker.MinDate = (long)datePicker.MinimumDate.ToUniversalTimeNative().Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
4040
}
4141
}
4242

@@ -49,10 +49,24 @@ public static void UpdateMaximumDate(this MauiDatePicker platformDatePicker, IDa
4949
{
5050
if (datePickerDialog != null)
5151
{
52-
datePickerDialog.DatePicker.MaxDate = (long)datePicker.MaximumDate.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
52+
datePickerDialog.DatePicker.MaxDate = (long)datePicker.MaximumDate.ToUniversalTimeNative().Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
5353
}
5454
}
5555

56+
static DateTime ToUniversalTimeNative(this DateTime date)
57+
{
58+
if (date.Kind == DateTimeKind.Utc)
59+
{
60+
return date;
61+
}
62+
var timeZone = Java.Util.TimeZone.Default;
63+
if (timeZone != null && date != DateTime.MaxValue && date != DateTime.MinValue)
64+
{
65+
return date.AddHours(-1 * (double)timeZone.RawOffset / 1000 / 60 / 60);
66+
}
67+
return date.ToUniversalTime();
68+
}
69+
5670
internal static void SetText(this MauiDatePicker platformDatePicker, IDatePicker datePicker)
5771
{
5872
platformDatePicker.Text = datePicker.Date.ToString(datePicker.Format);

0 commit comments

Comments
 (0)