NaturalDateFormat

Additional

Language
Java
Version
N/A
Created
Jan 30, 2016
Updated
Nov 1, 2016 (Retired)
Owner
ZieIony
Contributors
ZieIony
Quentin Klein (quentin7b)
David Kunzler (dkunzler)
Louis CAD (LouisCAD)
Alexey Shklyaev (ndczz)
Dominic Yin (ydcool)
Victor Raft (victorraft)
Dennis van den Munckhof (dvdmunckhof)
8
Activity
Badge
Generate
Download
Source code

NaturalDateFormat

A library to format dates as described in Material Design guidelines (https://www.google.com/design/spec/patterns/data-formats.html#data-formats-date-time).

RelativeDateFormat formats date as relative (4 months ago, today, next year), AbsoluteDateFormat formats date as absolute (Monday, 4:32 PM, June 10). These classes use natural language, can use abbreviations, 12/24 hours clock, skip time/year/weekday if not needed.

This library internally uses Joda Time. If you're looking for something really compact, you may prefer to use DateUtils.

How to install

Follow instructions on https://jitpack.io/#ZieIony/NaturalDateFormat

How to use
RelativeDateFormat relFormat = new RelativeDateFormat(context,NaturalDateFormat.DATE);
AbsoluteDateFormat absFormat = new AbsoluteDateFormat(context,NaturalDateFormat.DATE | NaturalDateFormat.HOURS | NaturalDateFormat.MINUTES);
relFormat.format(new Date().getTime());
absFormat.format(new Date().getTime());

The second parameter can be a combination of flags from NaturalDateFormat class. See the sample app.

Translations

I know only english and polish. If you wish to help me with translations, feel free to make a pull request with a translation.

There are issues with certain languages on certain platforms. For example polish doesn't work well on Samsung with API 10. It's an issue with Android internals and there's not much I can do with that.