首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何存储任意时间

如何存储任意时间
EN

Stack Overflow用户
提问于 2015-01-30 20:27:11
回答 3查看 40关注 0票数 1

我正在尝试存储没有任何日期(最好没有时区)信息的时间。例如,一名员工可能在周一至周五的上午9点到晚上11点有空。您不会将其存储为表示那些时间的所有(许多)未来星期一到星期五的每个日期,而是将其存储为您将添加到当前周的日期中的任意时间。

此外,我希望能够将这些时间存储为核心数据管理对象的属性。

我想出的唯一解决方案是将时间存储在NSDateComponent的小时和分钟组件中,但我不确定这将如何与核心数据一起工作。

EN

回答 3

Stack Overflow用户

发布于 2015-01-30 20:33:45

你可以做一些简单的事情,比如创建一个具有3个属性的实体:

  1. 星期几
  2. 小时
  3. 分钟小时

(如果需要,扩展为开始和结束小时和分钟)

另一种方法是将date components对象存储为二进制(可转换),但这样就不容易查询了。

票数 3
EN

Stack Overflow用户

发布于 2015-01-30 20:54:37

日期组件是最自然的解决方案,原因您显然已经知道:我们讨论的是日期的部分组件。但是,Core Data本身并不支持date组件。

您可以使用以下内容安全地切换到NSDate

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (NSDate *)referenceDate {
    return [NSDate dateWithTimeIntervalSinceReferenceDate:0.0];
}

- (NSCalendar *)referenceCalendar {
    NSCalendar *calendar =  [[NSCalendar alloc] 
                              initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    calendar.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
    return calendar;
}

- (NSDate *)canonicalDateForComponents:(NSDateComponents *)components {
    NSCalendar *calendar = [[self referenceCalendar] 
               dateByAddingComponents:components toDate:[self referenceDate] options:0];
}

- (NSDateComponents *)dateComponents:(NSCalendarUnit)components 
                   fromCanonicalDate:(NSDate *)date {
    return [[self referenceCalendar] components:components 
                                   fromDate:[self referenceDate] toDate:date options:0];
}

然后,您可以存储诸如NSDate *startTimeNSDate *endTimeNSDate *startDayNSDate *endDay之类的内容,通过如上所述的转换进行存储和检索。或者适当地组合更多的组件。

票数 1
EN

Stack Overflow用户

发布于 2015-01-31 17:09:22

我在一个核心数据驱动的应用程序中遇到了类似的情况,我发现最实用的方法是简单地存储自午夜以来的分钟数,因此最多1440分钟。(如果需要秒,显然可以乘以60;如果需要秒的分数,则使用浮点数。)

我的Time实体也有一个工作日属性(1-7)。

这是一个非常简单和实用的解决方案,绝对不需要动脑筋,而且你可以通过整数除法或使用日期组件chacunàson goát轻松可靠地转换日期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28244049

复制
相关文章
博客换回默认主题
看到过不少很炫酷的个人网站 自己也写了几个 typecho 主题 越来越觉得搞那些花里胡哨的卵用没得 还是要生产内容才是王道
eallion
2022/12/20
2780
把 Incoming Links 换回 technorati
在早前测试 WordPress 2.3 Beta 版本的时候!就对把 Incoming Links 换成 Google Blog Search 感觉不爽,感觉目前 Google Blog Search 除了显示自己的链接之外,别的就没有搜索过了,都不知道干吗去了!还是 technorati 好。
Denis
2023/04/13
2450
前端如何优雅切图
前端切图历史悠久,或许那时候不叫前端,叫页面重构师。之所以页面重构师要自己动手切图,是因为面对多种多样的页面效果,UI设计师不知道每一张图的需求,常常会引发流血冲突,带来不可挽回的生命危险。 切图能体现页面重构师的经验和能力,如果你拿到手的是psd文件,那么你可以看看“存储为 Web 和设备所用格式”的切法。
疯狂的技术宅
2019/03/28
9520
前端如何优雅切图
如何评估活动效果?
答:推广渠道的曝光量增加了30%、落地页面点击率70%、活动期间有6万用户参与……(此处省略各种指标)。
猴子数据分析
2021/01/09
1.4K0
如何评估活动效果?
答:推广渠道的曝光量增加了30%、落地页面点击率70%、活动期间有6万用户参与……(此处省略各种指标)。
猴子数据分析
2020/10/21
8070
如何提升TPM活动的成功概率?
TPM的实践需要全员参与,因此在开始TPM活动之前,需要建立共识并向全员解释TPM的目的和优点。这有助于员工理解TPM的价值,增强他们对TPM的支持度,并使TPM的实践更加顺利。
用户9972271
2023/04/25
3140
如何使用Aced分析活动目录的DACL
Aced是一款针对活动目录的安全检测与分析工具,该工具可以帮助广大研究人员解析单个目标活动目录的DACL。Aced可以针对目标帐户识别可疑的入站访问权限,解析入站权限的SID,并将该数据呈现给研究人员。除此之外,Aced还整合了pyldapsearch工具的日志记录功能,可以在本地记录目标主体的LDAP属性,而pyldapsearch的配套工具BOFHound可以对这些属性进行解析,随后我们可以将收集到的数据导入到BloodHound中进行后续操作。
FB客服
2022/11/14
6240
如何使用Aced分析活动目录的DACL
WordPress 不想用 CDN 了,如何替换回服务器本地图片?
我们继续来解答 WPJAM Basic 插件「CDN 加速」功能的常见问题,今天是一个反向操作的问题,不想用 CDN 之后如何替换回服务器本地图片?
Denis
2023/04/13
8250
WordPress 不想用 CDN 了,如何替换回服务器本地图片?
如何衡量品牌活动的有效性?
译者:李晓艳 本文长度为1313字,预估阅读时间3分钟。 摘要:本文作者介绍了从线上品牌调查、查看“浏览率”两种途径衡量品牌活动的有效性。 在之前的文章(https://www.dialogtech.com/blog/blog/a-quick-guide-to-measuring-online-lead-gen-success)中我谈到营销人员如何决定运行哪类活动(线索主导或品牌),并专门研究了线索主导活动成功与否的衡量方法。 现在深入研究品牌活动,并且介绍一下如何评估品牌活动的成功。 什么是品牌活动? 表
iCDO互联网数据官
2018/03/05
1.9K0
[Go] 利用类型断言把interface{}的转换回原类型
当传参数的时候 ,为了方便 ,参数的类型定义成了interface{} , 如果要给这个原类型的属性赋值 , 就需要强转回去
唯一Chat
2020/05/26
6520
如何实现黑幕?即鼠标触及之地,原来黑色显示原来文字
最近在写文章时,有些比较敏感的句段想实现默认情况下黑色(遮住文字),而鼠标靠近之后显示出来这些敏感句段的功能。
可定
2020/05/07
2.8K0
如何实现黑幕?即鼠标触及之地,原来黑色显示原来文字
如何利用Photoshop进行快速切图
在UI设计中我们常常使用Ai来进行矢量图的绘制,然后导入Ps中进行设计、排版和导出。 
奔跑的小鹿
2019/01/24
9910
如何利用Photoshop进行快速切图
Mastercam如何设定车床切槽刀?
当设定好图形及刀具型式,再来就可以设定参数的部分,可依参数去设定。 1、设定刀具: 请依架刀位置、刀座、主轴及选转方向设定,完成后打勾。 刀补类型 刀具间隙: 设定前角间隙宽度及侧角间隙高度。 设定宽度,让系统知道您刀片的宽度。 可点两弧来选择,选择黄色亮显的圆弧。 在宽度下方会显示设定刀片的宽度。 显示刀具:设定好后可以点选显示刀具来确认,如下图。 可看到刀片R角,有完整的圆,这样代表设定正确。打勾这样刀具就建立好了。
lrglu
2022/03/30
1.5K0
Mastercam如何设定车床切槽刀?
中文被 json_encode 编码成 unicode 之后如何转换回中文
使用 php 自带的 json_encode 函数对数据进行编码时,中文都会变成 unicode,前面我介绍了如何使得中文不被 json_encode 不编码成 unicode。
Denis
2023/04/14
1.1K0
ERP系统如何提升模切企业的管理效率
区别于其他行业,模切制造业的模切料分切后规格繁多,呆滞料无法及时处理等问题,传统ERP系统根本无法满足模切企业的实际业务需求,如何选择到适合模切企业的ERP系统就显得尤为关键。
用户7772535
2022/04/24
4420
如何把新版Chrome的界面切回经典样式
// 我们知道,Edge 的唯一作用是下载 Chrome,这行注释了,你们是程序员应该看不到的
Edi Wang
2019/07/10
2.1K0
如何把新版Chrome的界面切回经典样式
掌握如何使用Rose绘制活动图的方法[通俗易懂]
1.案例:借鉴我校图书管理系统,根据图书信息入库、借阅、归还、检索等活动流程,分析相关活动需求和活动到活动变化,使用rational rose绘制图书管理系统中某个活动流程的一个完整过程的活动图。
全栈程序员站长
2022/08/24
4.1K0
掌握如何使用Rose绘制活动图的方法[通俗易懂]
js全局替换回车换行符
但是保存的时候不能把回车换行符保存进数据库呀,所以在保存之前要再次把回车换行符替换没了,发现用js替换\r\n无效,思考了一下,可能是html显示是自动过滤了\r,而以\n来显示吧。于是把替换代码改成:
全栈程序员站长
2022/08/31
12.3K0
js全局替换回车换行符
pycharm如何打开原来的项目_terminal怎么打开
Pycharm的下方工具栏中有两个窗口:Python Console和Terminal(如下图)
全栈程序员站长
2022/09/27
3K0
pycharm如何打开原来的项目_terminal怎么打开
点击加载更多

相似问题

用于动态数据的mat表分页器和排序问题

220

Mat分页器更改工具提示位置

30

当mat表位于NgIf内部时,mat分页器中断

60

mat分页器不显示页面信息。

310

mat-分页器宽度与mat-table不对齐

110
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文