Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A "time ago", "time since", "relative date", or "fuzzy date" category for NSDate and iOS, Objective-C, Cocoa Touch, iPhone, iPad
Objective-C Swift Ruby
Latest commit 9d20921 @kevinlawler Merge pull request #92 from kgn/master
Framework for Carthage(#91) + Unit Tests and Code Fixes

Carthage compatible

Migration 2014.04.12

NSDate+TimeAgo has merged with DateTools. DateTools is the parent project and Matthew York is the project head.

This project is now part of DateTools. Please visit

This repo is here in archive form. New work should be contributed to DateTools.


This is an iOS, Objective-C, Cocoa Touch, iPhone, iPad category for NSDate. It gives NSDate the ability to report times like "A moment ago", "30 seconds ago", "5 minutes ago", "Yesterday", "Last month", "2 years ago", and so on.

This functionality has variously been referred to as a "time ago", "time since", "relative date", or "fuzzy date" feature.

NSDate+TimeAgo currently supports the following languages:

  • en (English)
  • es (Spanish)
  • zh_Hans (Chinese Simplified)
  • zh_Hant (Chinese Traditional)
  • pt (Portuguese)
  • fr (French)
  • it (Italian)
  • ru (Russian)
  • de (German)
  • nl (Dutch)
  • hu (Hungarian)
  • fi (Finnish)
  • ja (Japanese)
  • vi (Vietnamese)
  • ro (Romanian)
  • da (Danish)
  • cs (Czech)
  • nb (Norwegian)
  • lv (Latvian)
  • tr (Turkish)
  • ko (Korean)
  • bg (Bulgarian)
  • he (Hebrew)
  • ar (Arabic)
  • gre (Greek)
  • pl (Polish)
  • sv (Swedish)
  • th (Thai)
  • uk (Ukrainian)
  • is (Icelandic)
  • sq (Albanian)
  • sk (Slovak)
  • ms (Malay)

If you know a language not listed here, please consider submitting a translation. Localization codes by language.

This project is user driven (by people like you). Pull requests close faster than issues (merged or rejected).


  1. Add the files to your project - manually or via Cocoapods (pod 'NSDate+TimeAgo')
  2. Import the header using #import "NSDate+TimeAgo.h"
  3. Call the timeAgo method in the following way:
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:0];
NSString *ago = [date timeAgo];
NSLog(@"Output is: \"%@\"", ago);
2011-11-12 17:19:25.608 Proj[0:0] Output is: "41 years ago"

2 other methods are available:

  • dateTimeAgo: returns times with only strings of the type: "{value} {unit} ago"
  • dateTimeUntilNow: returns only "yesterday" / "this morning" / "last week" / "this month" -- less precise than dateTimeAgo but more natural

Those three methods can be interchanged as they have the same signature.

Future Directions

Would be nice to

  1. add customization options (e.g., should it report seconds or just "a minute ago")
  2. add string customization
  3. have more localizations
  4. make dateTimeUntilNow more precise: instead of "Last week" use "Last Friday", "Last Monday" etc.
  5. other


Released under ISC (similar to 2-clause BSD)


Originally based on code Christopher Pickslay posted to Forrst. Used with permission.

Ramon Torres began support for internationalization/localization. Added es strings.

Dennis Zhuang added zh_Hans Chinese Simplified strings.

Mozart Petter added pt_BR Brazilian Portuguese strings.

Stéphane Gerardot added fr French strings.

Marco Sanson added it Italian strings.

Almas Adilbek added ru Russian strings. Extended logic to support Russian idioms.

Mallox51 added de German strings.

Tieme van Veen added nl Dutch strings.

Árpád Goretity added hu Hungarian strings.

Anajavi added fi Finnish strings.

Tonydyb added ja Japanese strings.

Vinhnx added vi Vietnamese strings.

Ronail added zh_Hant Traditional Chinese strings.

SorinAntohi added ro Romanian strings.

spookd added da Danish strings.

Barrett Jacobsen added cs Czech strings.

Dmitry Shmidt added nb Norwegian strings.

Martins Rudens added lv Latvian strings.

Osman Saral added tr Turkish strings.

analogstyle added ko Korean strings.

Flavio Caetano fixed pt Portuguese strings.

kolarski added bg Bulgarian strings.

Vladimir Kofman added he Hebrew strings.

Viraf Sarkari added ar Arabic, gre Greek, pl Polish, sv Swedish, and th Thai strings.

Vasyl Skrypii added uk Ukranian strings.

Maggi Trymbill added is Icelandic strings.

Erid Bardhaj added sq Albanian strings.

Something went wrong with that request. Please try again.