如何:从单个DateTimePicker控件获取日期,时间和时区

时间:2009-12-30 05:39:13

标签: .net windows datetime timezone

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

编辑1
我正在使用.NET Framework 2.0。现在,我可以通过将DateTimePicker属性设置为

来使用单个CustomFormat获取日期和时间
dtpicker2.CustomFormat = "MM/dd/yyyy,hh:mm:ss"

现在我的问题是获取TimeZone。

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

3 个答案:

答案 0 :(得分:0)

使用DateTimePicker,您可以将格式属性更改为自定义,并将 CustomFormat属性指定为 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

答案 1 :(得分:0)

您将无法使用自己的DateTimePicker来执行此操作。

相反,你将不得不拥有一种复合控件,其上有一个DateTimePicker,以及另一个将作为偏移量的控件。

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

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

答案 2 :(得分:0)

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