日历 - 比特日记
日历
打印
复制成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1@Entry
2@Component
3struct Page02_TaskList {
4 private today:Date = new Date()
5 build() {
6 Column() {
7 Text(`${this.today.toLocaleString()}`)
8 }
9 .height('100%')
10 .width('100%')
11 .padding(10)
12 .backgroundColor('#f1f3f5')
13 }
14}
@Entry
@Component
struct Page02_TaskList {
private today:Date = new Date()
build() {
Column() {
Text(`${this.today.toLocaleString()}`)
}
.height('100%')
.width('100%')
.padding(10)
.backgroundColor('#f1f3f5')
}
}

日期
CalendarPickerDialog
复制成功
1
2
3
4
5
6
7
8
9
1private selectedDate: Date = new Date()
2calendarChange = () => {
3 CalendarPickerDialog.show({
4 selected: this.selectedDate,
5 onChange: (value) => {
6 console.log("CalendarPickerDialog:" + JSON.stringify(value))
7 }
8 })
9}
private selectedDate: Date = new Date()
calendarChange = () => {
CalendarPickerDialog.show({
selected: this.selectedDate,
onChange: (value) => {
console.log("CalendarPickerDialog:" + JSON.stringify(value))
}
})
}

时间
复制成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1timePickerChange = () => {
2 TimePickerDialog.show({
3 selected: this.selectedDate,
4 useMilitaryTime: true,
5 disappearTextStyle: {
6 color: Color.Brown,
7 font: {
8 size: 15,
9 weight: FontWeight.Bold
10 }
11 },
12 textStyle: {
13 color: Color.Orange
14 },
15 selectedTextStyle: {
16 color: Color.Blue,
17 font: {
18 size: 18,
19 weight: FontWeight.Bold
20 }
21 },
22 onAccept: (value: TimePickerResult) => {
23 console.log(JSON.stringify(value))
24 }
25 })
26}
timePickerChange = () => {
TimePickerDialog.show({
selected: this.selectedDate,
useMilitaryTime: true,
disappearTextStyle: {
color: Color.Brown,
font: {
size: 15,
weight: FontWeight.Bold
}
},
textStyle: {
color: Color.Orange
},
selectedTextStyle: {
color: Color.Blue,
font: {
size: 18,
weight: FontWeight.Bold
}
},
onAccept: (value: TimePickerResult) => {
console.log(JSON.stringify(value))
}
})
}

格式化
复制成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
1export class DateFormat {
2 yy: string = ''
3 mm: string = ''
4 dd: string = ''
5 HH: string = ''
6 MM: string = ''
7 SS: string = ''
8}
9
10/**
11 * 日期格式转换
12 *
13 * @param timestamp 日期毫秒
14 * @param format 预期格式
15 * @returns 格式化日期
16 */
17export function formatDate(timestamp: number, format: string = 'yyyy-mm-dd') {
18 let res = ''
19 try {
20 // 毫秒转日期
21 const date = new Date(timestamp)
22 // 定义日期字段
23 const opt: DateFormat = {
24 yy: date.getFullYear().toString(),
25 mm: (date.getMonth() + 1).toString(),
26 dd: date.getDate().toString(),
27 HH: date.getHours().toString(),
28 MM: date.getMinutes().toString(),
29 SS: date.getSeconds().toString()
30 };
31
32 // 存放正则表达式匹配字段
33 const regKeys: string[] = ['y+', 'm+', 'd+', 'H+', 'M+', 'S+']
34 for (let i = 0; i < regKeys.length; i++) {
35 const regKey = regKeys[i]
36 // 构造正则对象
37 const reg = new RegExp(regKey)
38 let ret = reg.exec(format)
39 if (ret) {
40 switch (regKey) {
41 case 'y+':
42 // yyyy-mm-dd 替换为2025-mm-dd
43 format = format.replace(reg, ret.length !== 1 ? opt.yy : opt.yy.padStart(ret.length, '0'))
44 case 'm+':
45 format = format.replace(reg, ret.length !== 1 ? opt.mm : opt.mm.padStart(2, '0'))
46 case 'd+':
47 format = format.replace(reg, ret.length !== 1 ? opt.dd : opt.dd.padStart(2, '0'))
48 case 'H+':
49 format = format.replace(reg, ret.length !== 1 ? opt.HH : opt.HH.padStart(2, '0'))
50 case 'M+':
51 format = format.replace(reg, ret.length !== 1 ? opt.MM : opt.MM.padStart(2, '0'))
52 case 'S+':
53 format = format.replace(reg, ret.length !== 1 ? opt.SS : opt.SS.padStart(2, '0'))
54 }
55 }
56 }
57 res = format
58 } catch (error) {
59 console.log("DateFormat Error")
60 }
61 return res
62}
export class DateFormat {
yy: string = ''
mm: string = ''
dd: string = ''
HH: string = ''
MM: string = ''
SS: string = ''
}
/**
* 日期格式转换
*
* @param timestamp 日期毫秒
* @param format 预期格式
* @returns 格式化日期
*/
export function formatDate(timestamp: number, format: string = 'yyyy-mm-dd') {
let res = ''
try {
// 毫秒转日期
const date = new Date(timestamp)
// 定义日期字段
const opt: DateFormat = {
yy: date.getFullYear().toString(),
mm: (date.getMonth() + 1).toString(),
dd: date.getDate().toString(),
HH: date.getHours().toString(),
MM: date.getMinutes().toString(),
SS: date.getSeconds().toString()
};
// 存放正则表达式匹配字段
const regKeys: string[] = ['y+', 'm+', 'd+', 'H+', 'M+', 'S+']
for (let i = 0; i < regKeys.length; i++) {
const regKey = regKeys[i]
// 构造正则对象
const reg = new RegExp(regKey)
let ret = reg.exec(format)
if (ret) {
switch (regKey) {
case 'y+':
// yyyy-mm-dd 替换为2025-mm-dd
format = format.replace(reg, ret.length !== 1 ? opt.yy : opt.yy.padStart(ret.length, '0'))
case 'm+':
format = format.replace(reg, ret.length !== 1 ? opt.mm : opt.mm.padStart(2, '0'))
case 'd+':
format = format.replace(reg, ret.length !== 1 ? opt.dd : opt.dd.padStart(2, '0'))
case 'H+':
format = format.replace(reg, ret.length !== 1 ? opt.HH : opt.HH.padStart(2, '0'))
case 'M+':
format = format.replace(reg, ret.length !== 1 ? opt.MM : opt.MM.padStart(2, '0'))
case 'S+':
format = format.replace(reg, ret.length !== 1 ? opt.SS : opt.SS.padStart(2, '0'))
}
}
}
res = format
} catch (error) {
console.log("DateFormat Error")
}
return res
}
复制成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1import { DateFormat, formatDate } from '../utils/DateFormat'
2
3@Entry
4@Component
5struct Page02_TaskList {
6 // 组件加载完毕后加载数据
7 aboutToAppear(): void {
8 const result = formatDate(new Date().getTime(), 'yyyy-mm-dd HH-MM-SS')
9 console.log(result)
10 }
11
12 build() {
13 Column() {
14 }
15 .height('100%')
16 .width('100%')
17 .padding(10)
18 .backgroundColor('#f1f3f5')
19 }
20}
21
22// 2025-2-3 13-29-38
import { DateFormat, formatDate } from '../utils/DateFormat'
@Entry
@Component
struct Page02_TaskList {
// 组件加载完毕后加载数据
aboutToAppear(): void {
const result = formatDate(new Date().getTime(), 'yyyy-mm-dd HH-MM-SS')
console.log(result)
}
build() {
Column() {
}
.height('100%')
.width('100%')
.padding(10)
.backgroundColor('#f1f3f5')
}
}
// 2025-2-3 13-29-38
随机日期
复制成功
1
2
3
4
5
6
7
8
9
10
11
12
## 1/**
2 * 获取随机日期
3 */
4export function getRandomDate() {
5 let today = new Date()
6 const year = today.getFullYear()
7 let month = today.getMonth() + 1
8 let minDay = 1
9 let maxDay = new Date(year, month + 1, 0).getDate()
10 let randomDay = Math.floor(Math.random() * (maxDay - minDay + 1)) + minDay
11 return `${year}-${String(month).padStart(2, '0')}-${String(randomDay).padStart(2, '0')}`
12}
/**
* 获取随机日期
*/
export function getRandomDate() {
let today = new Date()
const year = today.getFullYear()
let month = today.getMonth() + 1
let minDay = 1
let maxDay = new Date(year, month + 1, 0).getDate()
let randomDay = Math.floor(Math.random() * (maxDay - minDay + 1)) + minDay
return `${year}-${String(month).padStart(2, '0')}-${String(randomDay).padStart(2, '0')}`
}
复制成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1import { DateFormat, formatDate, getRandomDate } from '../utils/DateFormat'
2
3@Entry
4@Component
5struct Page02_TaskList {
6 @State message: string = ''
7
8 // 组件加载完毕后加载数据
9 aboutToAppear(): void {
10 const result = formatDate(new Date().getTime(), 'yyyy-mm-dd HH-MM-SS')
11 const randomDay = getRandomDate()
12 this.message = randomDay
13 console.log(result)
14 }
15
16 build() {
17 Column() {
18 Text(this.message)
19 .fontSize(30)
20 .fontColor(Color.Brown)
21 }
22 .height('100%')
23 .width('100%')
24 .padding(10)
25 .backgroundColor('#f1f3f5')
26 }
27}
import { DateFormat, formatDate, getRandomDate } from '../utils/DateFormat'
@Entry
@Component
struct Page02_TaskList {
@State message: string = ''
// 组件加载完毕后加载数据
aboutToAppear(): void {
const result = formatDate(new Date().getTime(), 'yyyy-mm-dd HH-MM-SS')
const randomDay = getRandomDate()
this.message = randomDay
console.log(result)
}
build() {
Column() {
Text(this.message)
.fontSize(30)
.fontColor(Color.Brown)
}
.height('100%')
.width('100%')
.padding(10)
.backgroundColor('#f1f3f5')
}
}

Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语
浙ICP备11005866号-12