📄 format.java
字号:
{
boolean dateSet = !(
calendar.get(Calendar.DAY_OF_YEAR) == 0 &&
calendar.get(Calendar.YEAR) == 0);
boolean timeSet = !(
calendar.get(Calendar.SECOND) == 0 &&
calendar.get(Calendar.MINUTE) == 0 &&
calendar.get(Calendar.HOUR) == 0);
if (dateSet) {
format(FORMAT_DDDDD, calendar, pw);
}
if (dateSet && timeSet) {
pw.print(" ");
}
if (timeSet) {
format(FORMAT_TTTTT, calendar, pw);
}
break;
}
case FORMAT_D:
{
int d = calendar.get(Calendar.DAY_OF_MONTH);
pw.print(d);
break;
}
case FORMAT_DD:
{
int d = calendar.get(Calendar.DAY_OF_MONTH);
if (d < 10)
pw.print("0");
pw.print(d);
break;
}
case FORMAT_DDD:
{
int dow = calendar.get(Calendar.DAY_OF_WEEK);
pw.print(locale.daysOfWeekShort[dow - 1]); // e.g. Sun
break;
}
case FORMAT_DDDD:
{
int dow = calendar.get(Calendar.DAY_OF_WEEK);
pw.print(locale.daysOfWeekLong[dow - 1]); // e.g. Sunday
break;
}
case FORMAT_DDDDD:
{
// Officially, we should use the system's short date
// format. But for now, we always print using the default
// format, m/d/yy.
format(FORMAT_M, calendar,pw);
pw.print(locale.dateSeparator);
format(FORMAT_D, calendar,pw);
pw.print(locale.dateSeparator);
format(FORMAT_YY, calendar,pw);
break;
}
case FORMAT_DDDDDD:
{
format(FORMAT_MMMM_UPPER, calendar, pw);
pw.print(" ");
format(FORMAT_DD, calendar, pw);
pw.print(", ");
format(FORMAT_YYYY, calendar, pw);
break;
}
case FORMAT_W:
{
int dow = calendar.get(Calendar.DAY_OF_WEEK);
pw.print(dow);
break;
}
case FORMAT_WW:
{
int woy = calendar.get(Calendar.WEEK_OF_YEAR);
pw.print(woy);
break;
}
case FORMAT_M:
{
int m = calendar.get(Calendar.MONTH) + 1; // 0-based
pw.print(m);
break;
}
case FORMAT_MM:
{
int mm = calendar.get(Calendar.MONTH) + 1; // 0-based
if (mm < 10)
pw.print("0");
pw.print(mm);
break;
}
case FORMAT_MMM_LOWER:
case FORMAT_MMM_UPPER:
{
int m = calendar.get(Calendar.MONTH) + 1;
pw.print(locale.monthsShort[m - 1]); // e.g. Jan
break;
}
case FORMAT_MMMM_LOWER:
case FORMAT_MMMM_UPPER:
{
int m = calendar.get(Calendar.MONTH) + 1;
pw.print(locale.monthsLong[m - 1]); // e.g. January
break;
}
case FORMAT_Q:
{
int m = calendar.get(Calendar.MONTH);
// 0(Jan) -> q1, 1(Feb) -> q1, 2(Mar) -> q1, 3(Apr) -> q2
int q = m / 3 + 1;
pw.print(q);
break;
}
case FORMAT_Y:
{
int doy = calendar.get(Calendar.DAY_OF_YEAR);
pw.print(doy);
break;
}
case FORMAT_YY:
{
int y = calendar.get(Calendar.YEAR) % 100;
if (y < 10) {
pw.print("0");
}
pw.print(y);
break;
}
case FORMAT_YYYY:
{
int y = calendar.get(Calendar.YEAR);
pw.print(y);
break;
}
case FORMAT_H:
{
int h = calendar.get(
twelveHourClock ? Calendar.HOUR : Calendar.HOUR_OF_DAY);
pw.print(h);
break;
}
case FORMAT_HH:
{
int h = calendar.get(
twelveHourClock ? Calendar.HOUR : Calendar.HOUR_OF_DAY);
if (h < 10)
pw.print("0");
pw.print(h);
break;
}
case FORMAT_N:
{
int n = calendar.get(Calendar.MINUTE);
pw.print(n);
break;
}
case FORMAT_NN:
{
int n = calendar.get(Calendar.MINUTE);
if (n < 10)
pw.print("0");
pw.print(n);
break;
}
case FORMAT_S:
{
int s = calendar.get(Calendar.SECOND);
pw.print(s);
break;
}
case FORMAT_SS:
{
int s = calendar.get(Calendar.SECOND);
if (s < 10)
pw.print("0");
pw.print(s);
break;
}
case FORMAT_TTTTT:
{
// Officially, we should use the system's time format. But
// for now, we always print using the default format, h:mm:ss.
format(FORMAT_H, calendar,pw);
pw.print(locale.timeSeparator);
format(FORMAT_NN, calendar,pw);
pw.print(locale.timeSeparator);
format(FORMAT_SS, calendar,pw);
break;
}
case FORMAT_AMPM:
case FORMAT_UPPER_AM_SOLIDUS_PM:
{
boolean isAm = calendar.get(Calendar.AM_PM) == Calendar.AM;
pw.print(isAm ? "AM" : "PM");
break;
}
case FORMAT_LOWER_AM_SOLIDUS_PM:
{
boolean isAm = calendar.get(Calendar.AM_PM) == Calendar.AM;
pw.print(isAm ? "am" : "pm");
break;
}
case FORMAT_UPPER_A_SOLIDUS_P:
{
boolean isAm = calendar.get(Calendar.AM_PM) == Calendar.AM;
pw.print(isAm ? "A" : "P");
break;
}
case FORMAT_LOWER_A_SOLIDUS_P:
{
boolean isAm = calendar.get(Calendar.AM_PM) == Calendar.AM;
pw.print(isAm ? "a" : "p");
break;
}
default:
throw new Error();
}
}
};
/**
* A FormatLocale contains all information necessary to format objects
* based upon the locale of the end-user. Use {@link Format#createLocale}
* to make one.
**/
public static class FormatLocale
{
char thousandSeparator;
char decimalPlaceholder;
String dateSeparator;
String timeSeparator;
String currencySymbol;
String currencyFormat;
String[] daysOfWeekShort;
String[] daysOfWeekLong;
String[] monthsShort;
String[] monthsLong;
private FormatLocale(
char thousandSeparator,
char decimalPlaceholder,
String dateSeparator,
String timeSeparator,
String currencySymbol,
String currencyFormat,
String[] daysOfWeekShort,
String[] daysOfWeekLong,
String[] monthsShort,
String[] monthsLong)
{
if (thousandSeparator == '\0') {
thousandSeparator = thousandSeparator_en;
}
this.thousandSeparator = thousandSeparator;
if (decimalPlaceholder == '\0') {
decimalPlaceholder = decimalPlaceholder_en;
}
this.decimalPlaceholder = decimalPlaceholder;
if (dateSeparator == null) {
dateSeparator = dateSeparator_en;
}
this.dateSeparator = dateSeparator;
if (timeSeparator == null) {
timeSeparator = timeSeparator_en;
}
this.timeSeparator = timeSeparator;
if (currencySymbol == null) {
currencySymbol = currencySymbol_en;
}
this.currencySymbol = currencySymbol;
if (currencyFormat == null) {
currencyFormat = currencyFormat_en;
}
this.currencyFormat = currencyFormat;
if (daysOfWeekShort == null) {
daysOfWeekShort = daysOfWeekShort_en;
}
this.daysOfWeekShort = daysOfWeekShort;
if (daysOfWeekLong == null) {
daysOfWeekLong = daysOfWeekLong_en;
}
this.daysOfWeekLong = daysOfWeekLong;
if (monthsShort == null) {
monthsShort = monthsShort_en;
}
this.monthsShort = monthsShort;
if (monthsLong == null) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -