1c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood/*
28ab8b411b81e4581060a31a97a0cb204a803b2e5Mike Lockwood * Copyright (C) 2008 The Android Open Source Project
3c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood *
4c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License");
5c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * you may not use this file except in compliance with the License.
6c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * You may obtain a copy of the License at
7c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood *
8c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood *      http://www.apache.org/licenses/LICENSE-2.0
9c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood *
10c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * Unless required by applicable law or agreed to in writing, software
11c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS,
12c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * See the License for the specific language governing permissions and
14c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * limitations under the License.
15c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood */
16c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
17191d898468d2f4910a684f429bec518320843744Mike Lockwoodpackage com.android.locationtracker.data;
18c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
19c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwoodimport java.util.Calendar;
20c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwoodimport java.util.TimeZone;
21c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
22c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood/**
23c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood * Provides formatting date as string utilities
24c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood */
25c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwoodpublic class DateUtils {
26c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
27c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    private DateUtils() {
28c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
29c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    }
30c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
31c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    /**
32c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     * Returns timestamp given by param in KML format ie yyyy-mm-ddThh:mm:ssZ,
33c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     * where T is the separator between the date and the time and the time zone
34c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     * is Z (for UTC)
35c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     *
36c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     * @return KML timestamp as String
37c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     */
38c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    public static String getKMLTimestamp(long when) {
39c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        TimeZone tz = TimeZone.getTimeZone("GMT");
40c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        Calendar c = Calendar.getInstance(tz);
41c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        c.setTimeInMillis(when);
42c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        return String.format("%tY-%tm-%tdT%tH:%tM:%tSZ", c, c, c, c, c, c);
43c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    }
44c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
45c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    /**
46c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     * Helper version of getKMLTimestamp, that returns timestamp for current
47c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     * time
48c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     */
49c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    public static String getCurrentKMLTimestamp() {
50c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        return getKMLTimestamp(System.currentTimeMillis());
51c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    }
52c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood
53c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    /**
54c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     * Returns timestamp in following format: yyyy-mm-dd-hh-mm-ss
55c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood     */
56c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    public static String getCurrentTimestamp() {
57c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        Calendar c = Calendar.getInstance();
58c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        c.setTimeInMillis(System.currentTimeMillis());
59c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood        return String.format("%tY-%tm-%td-%tH-%tM-%tS", c, c, c, c, c, c);
60c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood    }
61c9d3be3f0e10b62fa6d4899ce827866299d41783Mike Lockwood}
62