NSdate to int

本文介绍了一种将NSDate对象中的小时和分钟部分转换为int型数值的方法。通过使用NSDateFormatter设置不同的日期格式(hh 和 mm),可以方便地获取到NSDate对象中的小时和分钟,并将其转换为整数。

作项目时突然需要把NSDate 得到的值转换成int型来使用:

做法如下:

取出小时:

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"hh"];

    NSString *startStr = [formatter stringFromDate:[NSDate date]];

     int hour = [startStr integerValue];

取出分钟:

    [formatter setDateFormat:@"mm"];

    NSString *startStr = [formatter stringFromDate:[NSDate date]];

     int minutes = [startStr integerValue];

// // MessageCenterMainCell.swift // SurveillanceHome // // Created by duxuying on 2025/9/26. // Copyright © 2025 tplink. All rights reserved. // import Foundation import SnapKit class MessageCenterMainCell: TPBBaseTableViewCell { private lazy var messageIcon: UIImageView = { let view = UIImageView() view.image = TPImageLiteral("") return view }() private lazy var badgeView: UIView = { let view = UIView() view.backgroundColor = .clear return view }() private lazy var badgeImageView: UIImageView = { let imageView = UIImageView() imageView.image = TPImageLiteral("messageManager_notification_Single") return imageView }() private lazy var badgeNumberLabel: UILabel = { let label = UILabel() label.text = "" label.font = UIFont.tpr10Regular() label.textColor = .white label.numberOfLines = 1 label.lineBreakMode = .byTruncatingTail return label }() private lazy var titleLabel: UILabel = { let label = UILabel() label.text = "" label.font = UIFont.tpr17Regular() label.textColor = UIColor.tpbTextPrimary label.numberOfLines = 1 label.lineBreakMode = .byTruncatingTail return label }() private lazy var detailLabel: UILabel = { let label = UILabel() label.text = "" label.font = UIFont.tpr14Regular() label.textColor = UIColor.tpbTextSecondaryContent label.numberOfLines = 1 label.lineBreakMode = .byTruncatingTail return label }() private lazy var messageTimeLabel: UILabel = { let label = UILabel() label.text = "" label.font = UIFont.tpr12Regular() label.textColor = UIColor.tpbTextSecondaryContent label.numberOfLines = 1 label.lineBreakMode = .byTruncatingTail return label }() private lazy var unreadIconImageView: UIImageView = { let imageView = UIImageView() imageView.image = TPImageLiteral("messageManager_notification_not show") return imageView }() private lazy var indicatorView: UIImageView = { let view = UIImageView() view.image = TPImageLiteral("messageManager_nextList_nor") return view }() private var badgeImageWidthConstraint: Constraint? func hidePointImage() { if !unreadIconImageView.isHidden { unreadIconImageView.isHidden = true } // if !badgeView.isHidden { // badgeView.isHidden = true // } } override func setupSubviews() { super.setupSubviews() self.contentView.addSubviews([messageIcon, badgeView, titleLabel, detailLabel, messageTimeLabel, indicatorView, unreadIconImageView]) badgeView.addSubviews([badgeImageView, badgeNumberLabel]) contentView.backgroundColor = UIColor.tpbCard self.backgroundColor = .clear self.layer.backgroundColor = UIColor.clear.cgColor TPUIUtils.setCornerFor(contentView, corner: .allCorners, radius: kBorderRadius) badgeView.isHidden = true let selectedView = UIView() selectedView.backgroundColor = UIColor.clear self.selectedBackgroundView = selectedView badgeView.isHidden = true } override func makeConstraint() { super.makeConstraint() messageIcon.snp.remakeConstraints({ make in make.height.width.equalTo(28) make.centerY.equalToSuperview() make.leading.equalToSuperview().offset(22) make.top.equalToSuperview().offset(22) }) unreadIconImageView.snp.remakeConstraints({ make in make.bottom.equalTo(messageIcon).offset(2) make.trailing.equalTo(messageIcon).offset(2) make.height.width.equalTo(10) }) badgeView.snp.remakeConstraints({ make in make.leading.equalTo(messageIcon).offset(19) make.top.equalTo(messageIcon).offset(19) make.height.equalTo(14) make.width.equalTo(24) }) badgeImageView.snp.remakeConstraints({ make in make.leading.equalToSuperview() make.centerY.top.equalToSuperview() make.height.equalTo(20) badgeImageWidthConstraint = make.width.equalTo(24).constraint }) badgeImageWidthConstraint?.isActive = true badgeNumberLabel.snp.makeConstraints { make in make.centerY.equalToSuperview() make.leading.equalToSuperview().offset(4) } indicatorView.snp.makeConstraints { make in make.top.equalToSuperview().offset(12) make.trailing.equalToSuperview().offset(-12) } messageTimeLabel.snp.makeConstraints { make in make.centerY.equalTo(indicatorView) make.trailing.equalTo(indicatorView.snp.leading).offset(-4) } titleLabel.snp.makeConstraints { make in make.centerY.equalTo(indicatorView) make.leading.equalTo(messageIcon.snp.trailing).offset(16) make.trailing.lessThanOrEqualTo(messageTimeLabel.snp.leading).offset(-8) } detailLabel.snp.makeConstraints { make in make.leading.equalTo(titleLabel) make.top.equalTo(titleLabel.snp.bottom).offset(6) make.trailing.lessThanOrEqualToSuperview().offset(-16) } } private var unreadNumber = 0 { didSet { badgeView.isHidden = true if unreadNumber <= 0 { unreadIconImageView.isHidden = true } else { unreadIconImageView.isHidden = false } // if unreadNumber <= 0 { // badgeView.isHidden = true // badgeImageWidthConstraint?.update(offset: 0) // } else if (unreadNumber > 0 && unreadNumber <= 9) { // badgeView.isHidden = false // badgeImageView.image = TPImageLiteral("messageManager_notification_Single").render(tintColor: .tpbRed) // badgeImageWidthConstraint?.update(offset: 14) // badgeNumberLabel.text = String(unreadNumber) // } else if (unreadNumber > 9 && unreadNumber <= 99) { // badgeView.isHidden = false // badgeImageView.image = TPImageLiteral("messageManager_notification_Ten").render(tintColor: .tpbRed) // badgeImageWidthConstraint?.update(offset: 21) // badgeNumberLabel.text = String(unreadNumber) // } else { // badgeView.isHidden = false // badgeImageView.image = TPImageLiteral("messageManager_notification_Hundred").render(tintColor: .tpbRed) // badgeImageWidthConstraint?.update(offset: 25) // badgeNumberLabel.text = "99+" // } self.layoutIfNeeded() } } func setCellBy(messageType: TPSSMessageOverType, message: TPSSMessage?, unreadUnm: Int){ if let tMessage = message { unreadNumber = 0 self.unreadNumber = unreadUnm if TPSSAppContext.shared.isCloudVMSLogin { let eventDate = Date.init(timeIntervalSince1970: TimeInterval(tMessage.creatTime/1000))//毫秒秒再日期 let destinationDateNow: Date = Date.init(timeInterval: TimeInterval(MessageManagerPublic.getTimeZoneDifferenceInterval()), since: eventDate) let formatter = DateFormatter.standard formatter.setLocalizedDateFormatFromTemplate(MessageManagerPublic.messageDetailDateFormat) let latestLocalTime = formatter.string(from: destinationDateNow) messageTimeLabel.text = MessageManagerPublic.getTimeString(TimeInterval(tMessage.creatTime), latestLocalTime, isNewList: true) } else { var eventDate = NSDate(timeIntervalSince1970: Double(tMessage.devTimeInSecond)) eventDate = NSDate(timeInterval: MessageManagerPublic.getTimeZoneDifferenceInterval(), since: eventDate as Date) let formatter = DateFormatter.standard formatter.dateFormat = MessageManagerPublic.messageDetailDateFormat let latestLocalTime = formatter.string(from: eventDate as Date) messageTimeLabel.text = MessageManagerPublic.getTimeString(Double(tMessage.devTimeInSecond), latestLocalTime, isNewList: true) } var eventName = "" var deviceName = "" if TPSSAppContext.shared.isVmsLogin { eventName = TPSSMessageManager.getVmsMessageName(by: tMessage) if tMessage.channelID < 0 { //IPC不展示channel deviceName = tMessage.eventAlias } else { deviceName = String(format: "%@ %@-%@", tMessage.parentName, String(format: LocalizedString(key: deviceListChannelWithoutName), tMessage.channelID + 1), tMessage.eventAlias) } } detailLabel.text = String(format: "[%@] %@", eventName, deviceName) if messageType == .event { titleLabel.text = LocalizedString(key: settingConfig_SectionContents_warningInform_title) messageIcon.image = TPImageLiteral("messageCenterEventMessageImg") } else if messageType == .status { if message?.deviceType == .NVR { messageIcon.image = TPImageLiteral("message_filter_nvr") } else if message?.deviceType == .solar { messageIcon.image = TPImageLiteral("message_filter_solar") } else { messageIcon.image = TPImageLiteral("message_filter_ipc") } titleLabel.text = LocalizedString(key: solar_DeviceList_Device_Status) } else { titleLabel.text = LocalizedString(key: messageManagerSettingConfig_SectionContents_systemSetting_title) messageIcon.image = TPImageLiteral("messageCenterSystemMessageImg") } } else { //空cell badgeView.isHidden = true unreadIconImageView.isHidden = true indicatorView.isHidden = false messageTimeLabel.text = "" if messageType == .event { titleLabel.text = LocalizedString(key: settingConfig_SectionContents_warningInform_title) messageIcon.image = TPImageLiteral("messageCenterEventMessageImg") } else if messageType == .status { titleLabel.text = LocalizedString(key: solar_DeviceList_Device_Status) messageIcon.image = TPImageLiteral("messageCenterStatusMessageImg") } else { titleLabel.text = LocalizedString(key: messageManagerSettingConfig_SectionContents_systemSetting_title) messageIcon.image = TPImageLiteral("messageCenterSystemMessageImg") } detailLabel.text = LocalizedString(key: deviceListNVRManagerVCArmingNoLog) } } }
11-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值