HarmonyOS 鸿蒙Next DatePicker控件时间起点不能设置1969年前

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next DatePicker控件时间起点不能设置1969年前

if((this.select_four_pillars[0])!=2)
{
  DatePickerDialog.show({
    start: new Date('1800-1-1'),
    end: new Date("2100-12-31"),
    selected: this.selectedDate,
    lunar: this.lunarSelected,
    showTime:true,
    useMilitaryTime:true,
    disappearTextStyle: {color: Color.Pink, font: {size: '22fp', weight: FontWeight.Bold}},
    textStyle: {color: '#fff4f6f5', font: {size: '18fp', weight: FontWeight.Normal}},
    selectedTextStyle: {color: '#ff182431', font: {size: '14fp', weight: FontWeight.Regular}},
    onDateAccept: (value: Date) => {
      this.selectedDate = value
      if(!this.lunarSelected)
      {
        this.in_SolarTime = SolarTime.fromYmdHms(value.getFullYear(), value.getMonth(), value.getDay(),
          value.getHours(),value.getMinutes(),value.getSeconds())
        this.in_LunarHour=this.in_SolarTime.getLunarHour()
      }
      else
      {
        this.in_LunarHour=LunarHour.fromYmdHms(value.getFullYear(), value.getMonth(), value.getDay(),
          value.getHours(),value.getMinutes(),value.getSeconds())
        this.in_SolarTime=this.in_LunarHour.getSolarTime()
      }
    }
  })

设置了 start: new Date('1800-1-1'),不起作用仍然是默认的1969年


更多关于HarmonyOS 鸿蒙Next DatePicker控件时间起点不能设置1969年前的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

cke_240.png

当前最新版本未复现,请升级到当前最新版本后尝试。(IDE、升级版本配套升级)

https://developer.huawei.com/consumer/cn/download/

更多关于HarmonyOS 鸿蒙Next DatePicker控件时间起点不能设置1969年前的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


设置start为1900年1月31号是可以的,如果超出这个范围就会变成默认值,1969。

参考:

DatePickerDialog.show({
    start: new Date('1900-1-31'),
    end: new Date("2100-12-31"),
    selected: this.selectedDate,
    lunar: this.lunarSelected,
    showTime: true,
    useMilitaryTime: true,
    disappearTextStyle: { color: Color.Pink, font: { size: '22fp', weight: FontWeight.Bold } },
    textStyle: { color: '#fff4f6f5', font: { size: '18fp', weight: FontWeight.Normal } },
    selectedTextStyle: { color: '#ff182431', font: { size: '14fp', weight: FontWeight.Regular } },
    onDateAccept: (value: Date) => {
        this.selectedDate = value
    }
})

cke_194.png

截图是官方的日期选择范围 测试发现只要选择日期早于1970年就读取不到日期的返回值!

不能超过1900-1-31,再往前就是1969的默认值,或者就卡在1900不动,

在HarmonyOS鸿蒙系统中,关于Next DatePicker控件时间起点不能设置1969年前的问题,这通常是由于系统内部的时间限制或控件本身的限制所导致的。

HarmonyOS的DatePicker控件可能默认限制了可选日期的范围,以确保系统的稳定性和一致性。在大多数操作系统中,包括鸿蒙系统,都会有一些内置的日期和时间限制,这些限制通常是为了避免处理历史上不存在的日期或时间格式(如某些地区在1969年前还未采用当前的公历系统)。

如果你确实需要设置1969年之前的日期,可能需要考虑以下几种方法(但请注意,这些方法可能并不总是可行或推荐):

  1. 自定义控件:你可以尝试自己编写一个日期选择器控件,以允许用户选择1969年之前的日期。这需要一定的编程能力和对鸿蒙系统UI框架的了解。

  2. 使用其他控件或方法:考虑使用其他类型的输入控件(如文本框),让用户手动输入日期,然后在后台进行验证和处理。

然而,这些方法可能需要额外的开发和测试工作,并且可能会影响到用户体验。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部