YLMoment 0.10.0

YLMoment 0.10.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2018年9月

Yannick Loriot 管理。



YLMoment 0.10.0

YLMoment

License Supported Platforms Version Build Status codecov

YLMoment 是一个库,为 Objective-C 中解析、验证、操作和格式化日期提供高抽象级别。

它的 API 受到知名库 moment.js 的启发,但与其对立方不同,其核心基于 Foundation Framework 组件(NSDateNSCalendar 等)构建,以实现与它们的互操作性。

此库旨在通过提供一个单一、简单且统一的处理方法,方便 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

特此授予任何获得本软件及其相关文档(以下简称“软件”)副本的任何人,在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并授权获得软件的人从事此类行为,只要遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和侵权性的保证。在任何情况下,作者或版权持有人不应对任何索赔、损害或其它责任负责,无论是基于合同、侵权或其它原因,是否由此软件或其使用或其它处理而产生。