HarmonyOS 鸿蒙Next 判断时间字符串是否是今年
HarmonyOS 鸿蒙Next 判断时间字符串是否是今年
判断时间字符串是否是今年
2 回复
深色代码主题
复制
参考demo
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
RelativeContainer() {
Text(this.message)
.id('HelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
.onClick(()=>{
let date = new Date( '2023-09-07 13:33:30')
let nowDate = new Date()
let year = date.getFullYear()
let nowYear = nowDate.getFullYear()
if (year.valueOf() == nowYear) {
console.log('是今年')
} else {
console.log('不是今年')
}
})
}
.height('100%')
.width('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 判断时间字符串是否是今年的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,你可以使用内置的日期时间API来判断一个时间字符串是否是今年的。以下是一个示例代码片段,展示了如何进行这个判断:
#include <string>
#include <ctime>
#include <iomanip>
#include <sstream>
#include <locale>
bool isThisYear(const std::string& timeStr, const std::string& dateFormat = "%Y-%m-%d") {
std::tm tm = {};
std::istringstream ss(timeStr);
ss.imbue(std::locale(""));
ss >> std::get_time(&tm, dateFormat.c_str());
std::time_t currentTime = std::time(nullptr);
std::tm* currentTm = std::localtime(¤tTime);
return tm.tm_year == currentTm->tm_year;
}
int main() {
std::string dateStr = "2023-10-05";
bool result = isThisYear(dateStr);
// result will be true if dateStr is within the current year
}
注意:
dateFormat
参数用于指定时间字符串的格式,默认格式为 “%Y-%m-%d”。std::locale("")
用于支持本地化时间格式解析。std::get_time
用于将时间字符串解析为std::tm
结构。- 通过比较
tm_year
字段来判断时间字符串是否是今年的。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html