【问题标题】:How to: get Date, Time and Time zone from single DateTimePicker Control如何:从单个 DateTimePicker 控件获取日期、时间和时区
【发布时间】:2009-12-30 05:39:13
【问题描述】:

我正在开发一个应用程序,我试图从单个DateTimePicker 控件中获取日期、时间和时区。有人可以帮忙解决这个问题吗?

编辑 1
我正在使用 .NET Framework 2.0。现在我可以通过将 CustomFormat 属性设置为单个 DateTimePicker 来获取日期和时间

dtpicker2.CustomFormat = "MM/dd/yyyy,hh:mm:ss"

现在我的问题是获取 TimeZone。

编辑 2
现在还有一个问题,如果我将DateTimePicker 的格式属性设置为时间,它会显示类似2:30:00 PM 的内容。我将其存储在一个文件中并将其重新分配给DateTimePicker 控件。
任何人都可以帮助我,如何实现这一目标?

【问题讨论】:

    标签: .net windows datetime timezone


    【解决方案1】:

    您将无法单独使用 DateTimePicker。

    相反,您将不得不拥有一个带有 DateTimePicker 的复合控件,以及另一个用作偏移量的控件。

    此控件可以是一个数字上/下控件,您可以将其用于小时、分钟、秒等偏移量(或者只是一个文本框)。

    另一个选项是,如果您有一个位置(以纬度和经度的形式,which you can obtain via Google through HTTP 如果您有地址),则使用Timezone API function at GeoNames,这将允许您传递纬度和经度值,它会返回该位置的时区。这与TZ databaseZoneInfo project 一起将允许您确定特定日期/时间的偏移量(对于所有位置和所有日期而言,偏移量都不相同)。

    【讨论】:

    • 我正要 +1... 直到提到地理编码。不要这样做,伙计们,尤其是对于 UI 的默认设置:它真的非常非常不可靠,只会惹恼您的用户。
    • @Jeremy McGee:如果你有地址,请注意我所说的。我相信您认为我暗示应该通过 IP 地址进行地理编码,我同意,这是非常不可靠的。地理编码并不意味着使用 IP 地址来解析物理位置。如果有人有地址,Google 会出色地始终如一地准确地将其翻译成经纬度对。
    • 感谢您的回复。实际上,我正在开发一个 Windows 应用程序,我试图在其中获取日期、时间和时区的输入。我找到了获取日期和时间的方法,有2个不同的DateTimePicker控件,当然可以用单个控件来实现,但为了简单起见,我使用了2个。我在 .net 3.5 中找到了一个相当于 TimeZoneInfo 的类。现在我正在使用这个类。
    【解决方案2】:

    使用DateTimePicker,您可以将Format Property更改为Custom,并将CustomFormat Property指定为dd MMM yyyy hh:mm:ss。这将允许您在您的代码中使用

    DateTime dt = dateTimePicker1.Value;
    dt.Date
    dt.TimeOfDay
    

    不幸的是 DateTimePicker 没有内置的TimeZone 但你可以使用

    TimeZone tz = TimeZone.CurrentTimeZone;
    

    也看看这个问题

    Custom Formating a DateTimePicker using CultureInfo

    【讨论】:

      【解决方案3】:

      Any+Time(TM) Datepicker/Timepicker AJAX Calendar Widget 现在支持时区输入/输出、选择和转换。它应该与 .NET 兼容(如果遇到问题,请参阅网页上的故障排除部分)并且具有相当广泛的时区支持(请参阅网页上有关 UTC 偏移的部分)。希望它能满足您的需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-30
        • 1970-01-01
        • 2013-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多