diff options
author | Nawab Hussain <nawab.hussaen@gmail.com> | 2016-09-12 13:50:55 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-12 13:50:55 +0530 |
commit | 938a9c8981341c990aa0a8c06998f679a862505e (patch) | |
tree | 57dd11c02f6db7b8817c910f7ed955e1c8e4ce2c /WordPress/src/main/java/org/wordpress | |
parent | b702a8c40a711664c4bf7d757e493a2421c4ca57 (diff) | |
parent | 7ae414cab3e40e76763635f7f65136895bae1dbb (diff) | |
download | gradle-perf-android-medium-938a9c8981341c990aa0a8c06998f679a862505e.tar.gz |
Merge branch 'develop' into develop
Diffstat (limited to 'WordPress/src/main/java/org/wordpress')
20 files changed, 32 insertions, 204 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/AccountTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/AccountTable.java index fc4503e52..c66776c36 100644 --- a/WordPress/src/main/java/org/wordpress/android/datasets/AccountTable.java +++ b/WordPress/src/main/java/org/wordpress/android/datasets/AccountTable.java @@ -79,7 +79,7 @@ public class AccountTable { values.put("first_name", account.getFirstName()); values.put("last_name", account.getLastName()); values.put("about_me", account.getAboutMe()); - values.put("date", DateTimeUtils.javaDateToIso8601(account.getDateCreated())); + values.put("date", DateTimeUtils.iso8601FromDate(account.getDateCreated())); values.put("new_email", account.getNewEmail()); values.put("pending_email_change", account.getPendingEmailChange()); values.put("web_address", account.getWebAddress()); @@ -111,7 +111,7 @@ public class AccountTable { account.setFirstName(c.getString(c.getColumnIndex("first_name"))); account.setLastName(c.getString(c.getColumnIndex("last_name"))); account.setAboutMe(c.getString(c.getColumnIndex("about_me"))); - account.setDateCreated(DateTimeUtils.iso8601ToJavaDate(c.getString(c.getColumnIndex("date")))); + account.setDateCreated(DateTimeUtils.dateFromIso8601(c.getString(c.getColumnIndex("date")))); account.setNewEmail(c.getString(c.getColumnIndex("new_email"))); account.setPendingEmailChange(c.getInt(c.getColumnIndex("pending_email_change")) > 0); account.setWebAddress(c.getString(c.getColumnIndex("web_address"))); diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/ReaderBlogTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/ReaderBlogTable.java index 3717da76e..591b628c3 100644 --- a/WordPress/src/main/java/org/wordpress/android/datasets/ReaderBlogTable.java +++ b/WordPress/src/main/java/org/wordpress/android/datasets/ReaderBlogTable.java @@ -148,7 +148,7 @@ public class ReaderBlogTable { stmt.bindLong (9, SqlUtils.boolToSql(blogInfo.isJetpack)); stmt.bindLong (10, SqlUtils.boolToSql(blogInfo.isFollowing)); stmt.bindLong (11, blogInfo.numSubscribers); - stmt.bindString(12, DateTimeUtils.javaDateToIso8601(new Date())); + stmt.bindString(12, DateTimeUtils.iso8601FromDate(new Date())); stmt.execute(); } finally { SqlUtils.closeStatement(stmt); @@ -371,7 +371,7 @@ public class ReaderBlogTable { return NEVER_UPDATED; } - Date dtUpdated = DateTimeUtils.iso8601ToJavaDate(updated); + Date dtUpdated = DateTimeUtils.dateFromIso8601(updated); if (dtUpdated == null) { return 0; } diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/ReaderSearchTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/ReaderSearchTable.java index 9b527d3b6..77c54cf98 100644 --- a/WordPress/src/main/java/org/wordpress/android/datasets/ReaderSearchTable.java +++ b/WordPress/src/main/java/org/wordpress/android/datasets/ReaderSearchTable.java @@ -35,7 +35,7 @@ public class ReaderSearchTable { * adds the passed query string, updating the usage date */ public static void addOrUpdateQueryString(@NonNull String query) { - String date = DateTimeUtils.javaDateToIso8601(new Date()); + String date = DateTimeUtils.iso8601FromDate(new Date()); SQLiteStatement stmt = ReaderDatabase.getWritableDb().compileStatement( "INSERT OR REPLACE INTO tbl_search_suggestions (query_string, date_used) VALUES (?1,?2)"); diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/ReaderTagTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/ReaderTagTable.java index 864627715..b9f962c42 100644 --- a/WordPress/src/main/java/org/wordpress/android/datasets/ReaderTagTable.java +++ b/WordPress/src/main/java/org/wordpress/android/datasets/ReaderTagTable.java @@ -277,7 +277,7 @@ public class ReaderTagTable { return; } - String date = DateTimeUtils.javaDateToIso8601(new Date()); + String date = DateTimeUtils.iso8601FromDate(new Date()); String sql = "UPDATE tbl_tags SET date_updated=?1 WHERE tag_slug=?2 AND tag_type=?3"; SQLiteStatement stmt = ReaderDatabase.getWritableDb().compileStatement(sql); try { @@ -312,7 +312,7 @@ public class ReaderTagTable { return NEVER_UPDATED; } - Date dtUpdated = DateTimeUtils.iso8601ToJavaDate(updated); + Date dtUpdated = DateTimeUtils.dateFromIso8601(updated); if (dtUpdated == null) { return 0; } diff --git a/WordPress/src/main/java/org/wordpress/android/models/AccountModel.java b/WordPress/src/main/java/org/wordpress/android/models/AccountModel.java index f4d328c1b..93f3400ef 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/AccountModel.java +++ b/WordPress/src/main/java/org/wordpress/android/models/AccountModel.java @@ -64,7 +64,7 @@ public class AccountModel { mVisibleSiteCount = json.optInt("visible_site_count"); mEmail = json.optString("email"); - Date date = DateTimeUtils.iso8601ToJavaDate(json.optString("date")); + Date date = DateTimeUtils.dateFromIso8601(json.optString("date")); if (date != null) { mDateCreated = date; } else { diff --git a/WordPress/src/main/java/org/wordpress/android/models/Comment.java b/WordPress/src/main/java/org/wordpress/android/models/Comment.java index e737b842e..7ec244b53 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Comment.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Comment.java @@ -179,7 +179,7 @@ public class Comment { private transient java.util.Date dtPublished; public java.util.Date getDatePublished() { if (dtPublished == null) - dtPublished = DateTimeUtils.iso8601ToJavaDate(published); + dtPublished = DateTimeUtils.dateFromIso8601(published); return dtPublished; } diff --git a/WordPress/src/main/java/org/wordpress/android/models/Note.java b/WordPress/src/main/java/org/wordpress/android/models/Note.java index f74e39273..78fe414d9 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Note.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Note.java @@ -272,7 +272,7 @@ public class Note extends Syncable { * Get the timestamp provided by the API for the note */ public long getTimestamp() { - return DateTimeUtils.iso8601ToTimestamp(queryJSON("timestamp", "")); + return DateTimeUtils.timestampFromIso8601(queryJSON("timestamp", "")); } public JSONArray getBody() { @@ -386,7 +386,7 @@ public class Note extends Syncable { getPostId(), getCommentId(), getCommentAuthorName(), - DateTimeUtils.timestampToIso8601Str(getTimestamp()), + DateTimeUtils.iso8601FromTimestamp(getTimestamp()), getCommentText(), CommentStatus.toString(getCommentStatus()), "", // post title is unavailable in note model diff --git a/WordPress/src/main/java/org/wordpress/android/models/Person.java b/WordPress/src/main/java/org/wordpress/android/models/Person.java index 96fae4be8..f5c841bb4 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/Person.java +++ b/WordPress/src/main/java/org/wordpress/android/models/Person.java @@ -160,7 +160,7 @@ public class Person { private transient java.util.Date dtSubscribed; public java.util.Date getDateSubscribed() { if (dtSubscribed == null) - dtSubscribed = DateTimeUtils.iso8601ToJavaDate(subscribed); + dtSubscribed = DateTimeUtils.dateFromIso8601(subscribed); return dtSubscribed; } diff --git a/WordPress/src/main/java/org/wordpress/android/models/PostsListPost.java b/WordPress/src/main/java/org/wordpress/android/models/PostsListPost.java index 28a8d0890..b9ddd7e26 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/PostsListPost.java +++ b/WordPress/src/main/java/org/wordpress/android/models/PostsListPost.java @@ -164,7 +164,7 @@ public class PostsListPost { if (getStatusEnum() == PostStatus.SCHEDULED) { return DateUtils.formatDateTime(WordPress.getContext(), dateCreatedGmt, DateUtils.FORMAT_ABBREV_ALL); } else { - return DateTimeUtils.javaDateToTimeSpan(new Date(dateCreatedGmt)); + return DateTimeUtils.javaDateToTimeSpan(new Date(dateCreatedGmt), WordPress.getContext()); } } diff --git a/WordPress/src/main/java/org/wordpress/android/models/ReaderComment.java b/WordPress/src/main/java/org/wordpress/android/models/ReaderComment.java index 139a72389..f0d92cf08 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/ReaderComment.java +++ b/WordPress/src/main/java/org/wordpress/android/models/ReaderComment.java @@ -49,7 +49,7 @@ public class ReaderComment { comment.text = HtmlUtils.stripScript(JSONUtils.getString(json, "content")); comment.published = JSONUtils.getString(json, "date"); - comment.timestamp = DateTimeUtils.iso8601ToTimestamp(comment.published); + comment.timestamp = DateTimeUtils.timestampFromIso8601(comment.published); JSONObject jsonPost = json.optJSONObject("post"); if (jsonPost != null) { diff --git a/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java b/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java index 8ce09db51..ee96aaa5f 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java +++ b/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java @@ -138,7 +138,7 @@ public class ReaderPost { } // sort index determines how posts are sorted, which is based on the date retrieved above - post.sortIndex = DateTimeUtils.iso8601ToTimestamp(post.date); + post.sortIndex = DateTimeUtils.timestampFromIso8601(post.date); // if the post is untitled, make up a title from the excerpt if (!post.hasTitle() && post.hasExcerpt()) { @@ -677,7 +677,7 @@ public class ReaderPost { private transient java.util.Date dtDisplay; public java.util.Date getDisplayDate() { if (dtDisplay == null) { - dtDisplay = DateTimeUtils.iso8601ToJavaDate(this.pubDate); + dtDisplay = DateTimeUtils.dateFromIso8601(this.pubDate); } return dtDisplay; } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentAdapter.java index 0dca048ec..d5e5bd6fb 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentAdapter.java @@ -169,7 +169,7 @@ class CommentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { holder.txtTitle.setText(Html.fromHtml(comment.getFormattedTitle())); holder.txtComment.setText(comment.getUnescapedCommentTextWithDrawables()); - holder.txtDate.setText(DateTimeUtils.javaDateToTimeSpan(comment.getDatePublished())); + holder.txtDate.setText(DateTimeUtils.javaDateToTimeSpan(comment.getDatePublished(), mContext)); // status is only shown for comments that haven't been approved final boolean showStatus; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java index 86a70e37d..e1a7b9eb0 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java @@ -572,7 +572,7 @@ public class CommentDetailFragment extends Fragment implements NotificationFragm final TextView txtDate = (TextView) getView().findViewById(R.id.text_date); txtName.setText(mComment.hasAuthorName() ? HtmlUtils.fastUnescapeHtml(mComment.getAuthorName()) : getString(R.string.anonymous)); - txtDate.setText(DateTimeUtils.javaDateToTimeSpan(mComment.getDatePublished())); + txtDate.setText(DateTimeUtils.javaDateToTimeSpan(mComment.getDatePublished(), WordPress.getContext())); int maxImageSz = getResources().getDimensionPixelSize(R.dimen.reader_comment_max_image_size); CommentUtils.displayHtmlComment(mTxtContent, mComment.getCommentText(), maxImageSz); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java b/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java index e218c6347..8f8513482 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java @@ -9,6 +9,7 @@ import android.widget.TextView; import org.json.JSONException; import org.json.JSONObject; import org.wordpress.android.R; +import org.wordpress.android.WordPress; import org.wordpress.android.models.CommentStatus; import org.wordpress.android.ui.notifications.utils.NotificationsUtils; import org.wordpress.android.util.DateTimeUtils; @@ -56,7 +57,8 @@ public class CommentUserNoteBlock extends UserNoteBlock { final CommentUserNoteBlockHolder noteBlockHolder = (CommentUserNoteBlockHolder)view.getTag(); noteBlockHolder.nameTextView.setText(Html.fromHtml("<strong>" + getNoteText().toString() + "</strong>")); - noteBlockHolder.agoTextView.setText(DateTimeUtils.timestampToTimeSpan(getTimestamp())); + noteBlockHolder.agoTextView.setText(DateTimeUtils.timeSpanFromTimestamp(getTimestamp(), + WordPress.getContext())); if (!TextUtils.isEmpty(getMetaHomeTitle()) || !TextUtils.isEmpty(getMetaSiteUrl())) { noteBlockHolder.bulletTextView.setVisibility(View.VISIBLE); noteBlockHolder.siteTextView.setVisibility(View.VISIBLE); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.java index f88c9baaf..ef7c9245b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.java @@ -20,6 +20,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import org.wordpress.android.R; +import org.wordpress.android.WordPress; import org.wordpress.android.analytics.AnalyticsTracker; import org.wordpress.android.datasets.ReaderLikeTable; import org.wordpress.android.datasets.ReaderPostTable; @@ -910,7 +911,7 @@ public class ReaderPostDetailFragment extends Fragment imgAvatar.showDefaultGravatarImage(); } - String timestamp = DateTimeUtils.javaDateToTimeSpan(mPost.getDisplayDate()); + String timestamp = DateTimeUtils.javaDateToTimeSpan(mPost.getDisplayDate(), WordPress.getContext()); if (mPost.hasAuthorName()) { txtDateline.setText(mPost.getAuthorName() + ReaderConstants.UNICODE_BULLET_WITH_SPACE + timestamp); } else if (mPost.hasBlogName()) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java index 54c9c527e..1674102ba 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java @@ -64,7 +64,7 @@ public class ReaderCommentActions { newComment.setText(commentText); Date dtPublished = DateTimeUtils.nowUTC(); - newComment.setPublished(DateTimeUtils.javaDateToIso8601(dtPublished)); + newComment.setPublished(DateTimeUtils.iso8601FromDate(dtPublished)); newComment.timestamp = dtPublished.getTime(); ReaderUser currentUser = ReaderUserTable.getCurrentUser(); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java index 5cd79af0f..8039d13f8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java @@ -14,6 +14,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import org.wordpress.android.R; +import org.wordpress.android.WordPress; import org.wordpress.android.datasets.ReaderCommentTable; import org.wordpress.android.datasets.ReaderPostTable; import org.wordpress.android.models.ReaderComment; @@ -216,8 +217,8 @@ public class ReaderCommentAdapter extends RecyclerView.Adapter<RecyclerView.View CommentHolder commentHolder = (CommentHolder) holder; commentHolder.txtAuthor.setText(comment.getAuthorName()); - java.util.Date dtPublished = DateTimeUtils.iso8601ToJavaDate(comment.getPublished()); - commentHolder.txtDate.setText(DateTimeUtils.javaDateToTimeSpan(dtPublished)); + java.util.Date dtPublished = DateTimeUtils.dateFromIso8601(comment.getPublished()); + commentHolder.txtDate.setText(DateTimeUtils.javaDateToTimeSpan(dtPublished, WordPress.getContext())); if (comment.hasAuthorAvatar()) { String avatarUrl = GravatarUtils.fixGravatarUrl(comment.getAuthorAvatar(), mAvatarSz); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java index 090f79fe3..e650bc22b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java @@ -13,6 +13,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import org.wordpress.android.R; +import org.wordpress.android.WordPress; import org.wordpress.android.analytics.AnalyticsTracker; import org.wordpress.android.datasets.ReaderPostTable; import org.wordpress.android.models.ReaderPost; @@ -307,7 +308,7 @@ public class ReaderPostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol holder.txtTitle.setText(post.getTitle()); - String timestamp = DateTimeUtils.javaDateToTimeSpan(post.getDisplayDate()); + String timestamp = DateTimeUtils.javaDateToTimeSpan(post.getDisplayDate(), WordPress.getContext()); if (post.hasAuthorName()) { holder.txtDateline.setText(post.getAuthorName() + ReaderConstants.UNICODE_BULLET_WITH_SPACE + timestamp); } else if (post.hasBlogName()) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderCommentsPostHeaderView.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderCommentsPostHeaderView.java index 4a67d41a0..cefb3c285 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderCommentsPostHeaderView.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderCommentsPostHeaderView.java @@ -6,6 +6,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import org.wordpress.android.R; +import org.wordpress.android.WordPress; import org.wordpress.android.models.ReaderPost; import org.wordpress.android.ui.reader.utils.ReaderUtils; import org.wordpress.android.util.DateTimeUtils; @@ -51,8 +52,8 @@ public class ReaderCommentsPostHeaderView extends LinearLayout { txtBlogName.setText(R.string.reader_untitled_post); } - java.util.Date dtPost = DateTimeUtils.iso8601ToJavaDate(post.getDate()); - String dateLine = DateTimeUtils.javaDateToTimeSpan(dtPost); + java.util.Date dtPost = DateTimeUtils.dateFromIso8601(post.getDate()); + String dateLine = DateTimeUtils.javaDateToTimeSpan(dtPost, WordPress.getContext()); if (post.isCommentsOpen || post.numReplies > 0) { dateLine += " \u2022 " + ReaderUtils.getShortCommentLabelText(getContext(), post.numReplies); } diff --git a/WordPress/src/main/java/org/wordpress/android/util/DateTimeUtils.java b/WordPress/src/main/java/org/wordpress/android/util/DateTimeUtils.java deleted file mode 100644 index cc38bf601..000000000 --- a/WordPress/src/main/java/org/wordpress/android/util/DateTimeUtils.java +++ /dev/null @@ -1,178 +0,0 @@ -package org.wordpress.android.util; - -import android.text.format.DateUtils; - -import org.wordpress.android.R; -import org.wordpress.android.WordPress; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; -import java.util.TimeZone; - -public class DateTimeUtils { - private DateTimeUtils() { - throw new AssertionError(); - } - - /* - * see http://drdobbs.com/java/184405382 - */ - private static final ThreadLocal<DateFormat> ISO8601Format = new ThreadLocal<DateFormat>() { - @Override - protected DateFormat initialValue() { - return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US); - } - }; - - /* - * converts a date to a relative time span ("8h", "3d", etc.) - similar to - * DateUtils.getRelativeTimeSpanString but returns shorter result - */ - public static String javaDateToTimeSpan(final Date date) { - if (date == null) - return ""; - - long passedTime = date.getTime(); - long currentTime = System.currentTimeMillis(); - - // return "now" if less than a minute has elapsed - long secondsSince = (currentTime - passedTime) / 1000; - if (secondsSince < 60) - return WordPress.getContext().getString(R.string.reader_timespan_now); - - // less than an hour (ex: 12m) - long minutesSince = secondsSince / 60; - if (minutesSince < 60) - return Long.toString(minutesSince) + "m"; - - // less than a day (ex: 17h) - long hoursSince = minutesSince / 60; - if (hoursSince < 24) - return Long.toString(hoursSince) + "h"; - - // less than a week (ex: 5d) - long daysSince = hoursSince / 24; - if (daysSince < 7) - return Long.toString(daysSince) + "d"; - - // less than a year old, so return day/month without year (ex: Jan 30) - if (daysSince < 365) - return DateUtils.formatDateTime(WordPress.getContext(), passedTime, DateUtils.FORMAT_NO_YEAR | DateUtils.FORMAT_ABBREV_ALL); - - // date is older, so include year (ex: Jan 30, 2013) - return DateUtils.formatDateTime(WordPress.getContext(), passedTime, DateUtils.FORMAT_ABBREV_ALL); - } - - /* - * converts an ISO8601 date to a Java date - */ - public static Date iso8601ToJavaDate(final String strDate) { - try { - DateFormat formatter = ISO8601Format.get(); - return formatter.parse(strDate); - } catch (ParseException e) { - return null; - } - } - - /* - * converts a Java date to ISO8601 - */ - public static String javaDateToIso8601(Date date) { - if (date==null) - return ""; - DateFormat formatter = ISO8601Format.get(); - return formatter.format(date); - } - - /* - * returns the current UTC date - */ - public static Date nowUTC() { - Date dateTimeNow = new Date(); - return localDateToUTC(dateTimeNow); - } - - public static Date localDateToUTC(Date dtLocal) { - if (dtLocal==null) - return null; - TimeZone tz = TimeZone.getDefault(); - int currentOffsetFromUTC = tz.getRawOffset() + (tz.inDaylightTime(dtLocal) ? tz.getDSTSavings() : 0); - return new Date(dtLocal.getTime() - currentOffsetFromUTC); - } - - /* - * routines to return a diff between two dates - always return a positive number - */ - public static int daysBetween(Date dt1, Date dt2) { - long hrDiff = hoursBetween(dt1, dt2); - if (hrDiff == 0) { - return 0; - } - return (int) (hrDiff / 24); - } - - public static int hoursBetween(Date dt1, Date dt2) { - long minDiff = minutesBetween(dt1, dt2); - if (minDiff == 0) { - return 0; - } - return (int) (minDiff / 60); - } - public static int minutesBetween(Date dt1, Date dt2) { - long msDiff = millisecondsBetween(dt1, dt2); - if (msDiff==0) - return 0; - return (int)(msDiff / 60000); - } - public static int secondsBetween(Date dt1, Date dt2) { - long msDiff = millisecondsBetween(dt1, dt2); - if (msDiff == 0) { - return 0; - } - return (int)(msDiff / 1000); - } - public static long millisecondsBetween(Date dt1, Date dt2) { - if (dt1==null || dt2==null) - return 0; - return Math.abs(dt1.getTime() - dt2.getTime()); - } - public static long iso8601ToTimestamp(final String strDate) { - Date date = iso8601ToJavaDate(strDate); - if (date==null) - return 0; - return (date.getTime() / 1000); - } - - public static boolean isSameYear(Date dt1, Date dt2) { - if (dt1 == null || dt2 == null) { - return false; - } - return dt1.getYear() == dt2.getYear(); - } - - public static boolean isSameMonthAndYear(Date dt1, Date dt2) { - if (dt1 == null || dt2 == null) { - return false; - } - return dt1.getYear() == dt2.getYear() - && dt1.getMonth() == dt2.getMonth(); - } - - /* - * routines involving Unix timestamps (GMT assumed) - */ - public static Date timestampToDate(long timeStamp) { - return new java.util.Date(timeStamp*1000); - } - public static String timestampToIso8601Str(long timestamp) { - return javaDateToIso8601(timestampToDate(timestamp)); - } - public static String timestampToTimeSpan(long timeStamp) { - Date dtGmt = timestampToDate(timeStamp); - return javaDateToTimeSpan(dtGmt); - } -} |