YLMoment 是一个库,为 Objective-C 中解析、验证、操作和格式化日期提供高抽象级别。
它的 API 受到知名库 moment.js 的启发,但与其对立方不同,其核心基于 Foundation Framework
组件(NSDate
、NSCalendar
等)构建,以实现与它们的互操作性。
此库旨在通过提供一个单一、简单且统一的处理方法,方便 Objective-C 中对时间、日期、日历和持续时间的操作。
入门
如果您想快速了解项目,请查看这篇 博客文章。
用法
日期格式化
YLMoment *moment = [YLMoment now];
NSLog(@"%@", [moment format:@"MMMM dd yyyy, h:mm:ss a"]); // October 27 2013, 10:49:48 AM
NSLog(@"%@", [moment format:@"MMM dd yy"]); // Oct 27 13
NSLog(@"%@", [moment format:@"yyyy 'escaped' yyyy"]); // 2013 escaped 2013
NSLog(@"%@", [moment format]); // 2013-10-27T10:49:48+0100
相对时间
YLMoment *moment1 = [YLMoment momentWithDateAsString:@"20111031"];
NSLog(@"%@", [moment1 fromNow]); // 2 years ago
YLMoment *moment2 = [YLMoment momentWithDateAsString:@"2012/06/20" format:@"yyyy/MM/dd"];
NSLog(@"%@", [moment2 fromNow]); // a year ago
NSLog(@"%@", [[[YLMoment now] startOf:@"day"] fromNow]); // 19 hours ago
NSLog(@"%@", [[[YLMoment now] endOf:@"day"] fromNow]); // in 5 hours
NSLog(@"%@", [[[YLMoment now] startOf:@"hour"] fromNow]); // 11 minutes ago
时区
// Uses my current time zone: here the CET time (GMT+1)
YLMoment *now = [YLMoment now];
NSLog(@"%@", [now format]); // 2014-01-18T18:51:10+0100
// Change the time zone of the moment
now.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
NSLog(@"%@", [now format]); // 2014-01-18T17:51:10+0000
// Convenient way to use get the UTC time
YLMoment *utc = [YLMoment utc];
NSLog(@"%@", [utc format]); // 2014-01-18T17:51:10+0000
语言
YLMoment
支持多种语言(请见下文列表)且易于使用。
YLMoment *french = [[YLMoment now] addAmountOfTime:-3 forUnitKey:@"s"];
[french setLocale:[NSLocale localeWithLocaleIdentifier:@"fr_FR"]];
NSLog(@"%@", [french fromNow]); // il y a quelques secondes
YLMoment *albanian = [[YLMoment now] addAmountOfTime:-3 forUnitKey:@"s"];
[albanian setLocale:[NSLocale localeWithLocaleIdentifier:@"sq_AL"]];
NSLog(@"%@", [albanian fromNow]); // disa sekonda me parë
YLMoment *spanish = [[YLMoment now] subtractAmountOfTime:3 forUnitKey:@"s"];
[spanish setLocale:[NSLocale localeWithLocaleIdentifier:@"es_ES"]];
NSLog(@"%@", [spanish fromNow]); // hace unos segundos
YLMoment *reference = [YLMoment momentWithArray:@[@2013]];
YLMoment *english = [[YLMoment now] subtractAmountOfTime:3 forUnitKey:@"s"];
[english setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];
NSLog(@"%@", [english fromMoment:reference]); // in 11 months
支持的语言
以下是支持的语言列表
- 阿尔巴尼亚语
- 中文
- 荷兰语
- 英语
- 法语
- 德语
- 意大利语
- 日语
- 葡萄牙语
- 西班牙语
- 越南语
所有贡献都受欢迎! ;)
安装
在您的项目中使用 YLMoment 的推荐方法是使用 CocoaPods 软件包管理器,因为它提供了灵活的依赖关系管理,且安装简单。
CocoaPods
如果没有已安装,请安装CocoaPods
$ [sudo] gem install cocoapods
$ pod setup
前往Xcode项目的目录,创建和编辑您的Podfile,并添加YLMoment
$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '5.0'
# Or platform :osx, '10.8'
pod 'YLMoment', '~> 0.9.1'
将YLMoment添加到项目中
$ pod install
从.xcworkspace文件(并非通常的项目文件)打开项目到Xcode
$ open MyProject.xcworkspace
手动安装
下载 项目并复制 YLMoment
文件夹到您的项目中,然后只需在要使用的文件中使用 #import "YLMoment.h"
即可。
贡献
欢迎并鼓励贡献 ♡。
联系
Yannick Loriot
许可证 (MIT)
版权所有 (c) 2013-现在 - Yannick Loriot
特此授予任何获得本软件及其相关文档(以下简称“软件”)副本的任何人,在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并授权获得软件的人从事此类行为,只要遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和侵权性的保证。在任何情况下,作者或版权持有人不应对任何索赔、损害或其它责任负责,无论是基于合同、侵权或其它原因,是否由此软件或其使用或其它处理而产生。