我在NSUserDefaults中存储了两种存储NSDate的方法.
// Set
NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];
// Get
NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];
Run Code Online (Sandbox Code Playgroud)
// Set
NSDate *myDate = [NSDate date];
NSTimeInterval myDateTimeInterval = [myDate timeIntervalSince1970];
[[NSUserDefaults standardUserDefaults] setFloat:myDateTimeInterval forKey:@"myDateKey"];
// Get
NSTimeInterval myDateTimeInterval = [[NSUserDefaults standardUserDefaults] floatForKey:@"myDateKey"];
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:myDateTimeInterval];
Run Code Online (Sandbox Code Playgroud)
选项1
这似乎是紧凑和合乎逻辑的.但是,由于Date Formatter错误,我担心这会出错.
选项2
这似乎很笨拙.我也不确定它的准确性 - 在我做过的一次测试中,当我检索到日期时它已经超过了48秒,尽管Apple Docs说NSTimeInterval具有"亚秒精度".
无论我选择何种方法,都必须:
精确到一秒钟之内.
可读且可靠.
选项2是不准确的,因为我做错了什么?
你会使用这两个选项中的哪一个?
还有其他选择我不知道吗?
谢谢!
我是Python的日志包的新手,并计划将它用于我的项目.我想根据自己的口味定制时间格式.这是我从教程中复制的一个简短代码:
import logging
# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
Run Code Online (Sandbox Code Playgroud)
这是输出:
2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message
Run Code Online (Sandbox Code Playgroud)
我想将时间格式缩短为:' 2010-07-10 10:46:28',删除mili-second后缀.我查看了Formatter.formatTime,但很困惑.感谢您帮助我实现目标.谢谢.
我从API接收日期字符串,格式为yyyy-mm-dd.
我目前正在使用正则表达式验证字符串格式,这可以正常工作,但我可以看到一些情况,根据字符串,它可能是一个正确的格式,但实际上是一个无效的日期.即2013-13-01,例如.
有没有更好的方法在PHP中获取字符串,2013-13-01并告诉它是否是格式的有效日期yyyy-mm-dd?
我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.
对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:
>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud) datetime android android-gradle-plugin threetenbp threetenabp
我想使用SQL Server 2005和2008默认输出使用SQL查询从DateTime列获取时间:
AttDate
==
2011-02-09 13:09:00
2011-02-09 14:10:00
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:
AttDate Time
==
2011-02-09 13:09:00 13:09
2011-02-09 14:10:00 14:10
Run Code Online (Sandbox Code Playgroud) 我可以使用Day(Date()),提取月和日Month(Date()).我无法提取小时数HOUR(Date()).我收到以下错误.
'HOUR' is not a recognized built-in function name.
Run Code Online (Sandbox Code Playgroud)
我怎样才能提取数小时?
如何计算两个日期之间的差异,格式YYYY-MM-DD hh: mm: ss和以秒或毫秒获得结果?
我是Java新手,通常使用PHP.
我想转换这个字符串:
2011年3月14日星期四16:02:37 GMT
进入一个Calendar对象,这样我就可以像这样轻松地拉出Year和Month:
String yearAndMonth = cal.get(Calendar.YEAR)+cal.get(Calendar.MONTH);
Run Code Online (Sandbox Code Playgroud)
手动解析是不是一个坏主意?使用子字符串方法?
任何建议都会有所帮助!
datetime ×10
date ×4
sql ×3
t-sql ×2
android ×1
calendar ×1
cocoa ×1
formatting ×1
hour ×1
java ×1
logging ×1
mongodb ×1
mysql ×1
nsdate ×1
php ×1
python ×1
sql-server ×1
threetenabp ×1
threetenbp ×1