1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/time_format.h"
7 #include "base/logging.h"
8 #include "base/string_util.h"
10 #include "unicode/datefmt.h"
14 std::wstring
TimeFormat(const DateFormat
* formatter
,
17 UnicodeString date_string
;
19 formatter
->format(static_cast<UDate
>(time
.ToDoubleT() * 1000), date_string
);
21 bool success
= UTF16ToWide(date_string
.getBuffer(), date_string
.length(),
31 std::wstring
TimeFormatTimeOfDay(const Time
& time
) {
32 // We can omit the locale parameter because the default should match
33 // Chrome's application locale.
34 scoped_ptr
<DateFormat
> formatter(DateFormat::createTimeInstance(
36 return TimeFormat(formatter
.get(), time
);
39 std::wstring
TimeFormatShortDate(const Time
& time
) {
40 scoped_ptr
<DateFormat
> formatter(DateFormat::createDateInstance(
41 DateFormat::kMedium
));
42 return TimeFormat(formatter
.get(), time
);
45 std::wstring
TimeFormatShortDateNumeric(const Time
& time
) {
46 scoped_ptr
<DateFormat
> formatter(DateFormat::createDateInstance(
48 return TimeFormat(formatter
.get(), time
);
51 std::wstring
TimeFormatShortDateAndTime(const Time
& time
) {
52 scoped_ptr
<DateFormat
> formatter(DateFormat::createDateTimeInstance(
54 return TimeFormat(formatter
.get(), time
);
57 std::wstring
TimeFormatFriendlyDateAndTime(const Time
& time
) {
58 scoped_ptr
<DateFormat
> formatter(DateFormat::createDateTimeInstance(
60 return TimeFormat(formatter
.get(), time
);
63 std::wstring
TimeFormatFriendlyDate(const Time
& time
) {
64 scoped_ptr
<DateFormat
> formatter(DateFormat::createDateInstance(
66 return TimeFormat(formatter
.get(), time
);