HarmonyOS 鸿蒙Next 日期问题

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

HarmonyOS 鸿蒙Next 日期问题

let calendar = new Date();
calendar.setTime(new Date().getTime())
然后时间会偏移十天,例如今天11月13日,setTime后会变成11月3日

例如这段代码:
let calendar = new Date();
calendar.setTime(new Date().getTime())
let year = calendar.getFullYear();//获取年份
let month = calendar.getMonth()+1;//获取月份
let day = calendar.getDay();//获取日
let temp = year.toString();
if(month < 10){
temp += "/0"+month;
}else {
temp += "/"+month;
}
if (day < 10){
temp += "/0"+day;
}else {
temp += "/"+day;
}
时间会偏移

更多关于HarmonyOS 鸿蒙Next 日期问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

你是想如何把时间戳转成Date,Date转时间戳,还有把Date格式化为2024-20-09 14:01:01 这种格式?

1、Date类型转换为指定格式:

export function formatDate1(date: Date) {
    let year = date.getFullYear();
    let month = String(date.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的 
    let day = String(date.getDate()).padStart(2, '0');
    let hours = String(date.getHours()).padStart(2, '0');
    let minutes = String(date.getMinutes()).padStart(2, '0');
    let seconds = String(date.getSeconds()).padStart(2, '0');
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}

2、字符串转换为Date类型

export function parseDateString(dateString: string) {
    let parts = dateString.split(/[\s-:/]/); // 分割日期和时间部分 
    let year = parseInt(parts[0], 10);
    let month = parseInt(parts[1], 10) - 1; // 月份从0开始 
    let day = parseInt(parts[2], 10);
    let hours = parseInt(parts[3], 10) || 0; // 如果没有小时部分,默认为0 
    let minutes = parseInt(parts[4], 10) || 0; // 如果没有分钟部分,默认为0 
    let seconds = parseInt(parts[5], 10) || 0; // 如果没有秒部分,默认为0 
    return new Date(year, month, day, hours, minutes, seconds);
}

let dateString = "2023-04-01 12:00:00";
let date = parseDateString(dateString);

3、时间戳与Date类型互转 获取时间戳:new Date().getTime() 时间戳转Date:

new Date( new Date().getTime() )

其它:也可以考虑使用三方库dayjs: https://gitee.com/openharmony-tpc/openharmony_tpc_samples/tree/master/dayjs

当前时间:dayjs().format(“YYYY-MM-DD HH:mm:ss”)

某个date: dayjs(date).format(“YYYY-MM-DD HH:mm:ss”)

示例demo:

import dayjs from "dayjs";

@Component
struct Index {

  @State timeStr: number = 1714991876;

  @State timeNow: string = ''

  build() {

    Row() {

      Column() {

        Text(`当前时间:` + this.timeNow).fontSize(20).fontWeight(FontWeight.Bold).width("100%")

        Button("get time").onClick(() => {

          try {

            this.timeNow = dayjs.unix(this.timeStr).format('YYYY-MM-DD HH:mm:ss')

          } catch (e) {

          }

        })
      }.justifyContent(FlexAlign.Center).width('100%')
    }.height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next 日期问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 日期问题

HarmonyOS 鸿蒙Next的日期问题,通常涉及系统更新或特定功能的时间安排。在鸿蒙系统中,日期和时间设置一般由系统自动管理,但用户也可以手动进行调整。

若你遇到的鸿蒙Next日期问题是指系统更新日期不确定或延迟,这可能与多种因素有关,包括网络状况、设备兼容性以及华为官方的发布计划等。鸿蒙系统的更新通常会分批推送,不同设备或地区的用户可能会在不同时间收到更新通知。

如果你发现设备上的日期显示不准确,可以尝试以下步骤进行排查:

  1. 检查设备是否已连接到网络,并确保网络稳定。
  2. 进入系统设置,检查日期和时间设置是否正确,必要时手动调整。
  3. 查看是否有可用的系统更新,并尝试安装更新以解决问题。

请注意,鸿蒙系统的更新策略和功能发布可能随时间发生变化。如果以上方法无法解决你的日期问题,可能是系统存在特定故障或需要进一步的官方支持。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html ,他们将能提供更专业的帮助和解决方案。

回到顶部