私はint年、int月、int日Javaで、どのように日の名前を見つけるには?これにはすでにいくつかの機能がありますか?年、月、日で日の名前を見つける
答えて
Calendarオブジェクトを使用してこれを見つけることができます。あなたはswitchステートメントlike soを使用することができます
あなたはカレンダーのインスタンスを作成したら、あなたは、あなたがそこから一日を見つけることができます(intです)DAY_OF_WEEKを取得)
:
import java.util.*;
public class DayOfWeek {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_WEEK);
System.out.print("Today is ");
switch (day) {
case 1:
System.out.print("Sunday");
break;
case 2:
System.out.print("Monday");
break;
case 3:
System.out.print("Tuesday");
break;
case 4:
System.out.print("Wednesday");
break;
case 5:
System.out.print("Thursday");
break;
case 6:
System.out.print("Friday");
break;
case 7:
System.out.print("Saturday");
}
System.out.print(".");
}
}
コンストラクトA年、月、日のGregorianCalendarを照会して、その日の名前を検索します。このような何か:曜日はロケールの曜日の表現でその日の序を表すintとして返されること
int year = 1977;
int month = 2;
int dayOfMonth = 15;
Calendar myCalendar = new GregorianCalendar(year, month, dayOfMonth);
int dayOfWeek = myCalendar.get(Calendar.DAY_OF_WEEK);
注意。 IEは、平日が月曜日に開始し、日曜日に終了するロケールでは、2は火曜日を表し、ロケールの平日が日曜日に始まる場合、同じ2は月曜日を表します。
編集
そして起こって解答編集の多くがあるので、私は以下を追加することができます:
正直であると考えDateFormatSymbols symbols = new DateFormatSymbols(Locale.getDefault());
String dayOfMonthStr = symbols.getWeekdays()[dayOfMonth];
、私は、より良いSimpleDateFormatterアプローチが好き私が上に示したのとまったく同じコードをカプセル化しているからです。愚かな私はそれについてすべてを忘れる。
注意:月は0ベースで、3月15日です! (2月ではない) –
私は私の例で3月のIdesを目指していた; P – Perception
多分、私はまだそれを知らないいくつかのプログラマーがいると確信しています! –
ロケールごとの曜日の名前は異なります。だから適切なロケールでDateFormat
を使用する必要があります。例えば:
SimpleDateFormat format = new SimpleDateFormat("EEEE");
System.out.println(format.format(date));
Date
オブジェクトは、廃止予定Date(..)
コンストラクタを含む、複数の方法でCalendar.set(..)
方法またはJodaの時間DateTime
を得ることができます。 (後者のためにあなたが使用することができますジョダタイムのは、自身のDateTimeFormat
)
Calendar.SUNDAY == 1
、
Calendar.MONDAY == 2
を与える
new GregorianCalendar().setTime(new Date()).get(DAY_OF_WEEK)
、...
はい、それはJDKとかなり長いプロセスです。 JodaTime(私はそれを使用していない)より良い選択かもしれません。
まず、Calendar
オブジェクトを取得します。これにより、日/月/年/時間帯の日付を作成できます。推奨されないDate
コンストラクタのいずれかを使用しないでください。
次に、そのカレンダーからDate
オブジェクトを取得し、SimpleDateFormat
に渡します。書式オブジェクトはスレッドセーフではありません。
// by default, this Calendar object will have the current timezone
Calendar cal = GregorianCalendar.getInstance();
cal.set(2011, 6, 22);
// this formatter will have the current locale
SimpleDateFormat format = new SimpleDateFormat("EEEE");
System.out.println(format.format(cal.getTime()));
thisのように、異なるロケールの曜日の名前を取得できます。
ここで重要な部分です:
DateFormatSymbols dfs = new DateFormatSymbols(usersLocale);
String weekdays[] = dfs.getWeekdays();
これと組み合わせることができます。
String nameOfDay = weekdays[day];
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 22); //Set Day of the Month, 1..31
cal.set(Calendar.MONTH,6); //Set month, starts with JANUARY = 0
cal.set(Calendar.YEAR,2011); //Set year
System.out.println(cal.get(Calendar.DAY_OF_WEEK)); //Starts with Sunday, 6 = friday
用途:あなたが探しているものを取得するには
Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_WEEK);
は、パターンがの曜日の名前を取得します。
// Assuming that you already have this.
int year = 2011;
int month = 7;
int day = 22;
// First convert to Date. This is one of the many ways.
String dateString = String.format("%d-%d-%d", year, month, day);
Date date = new SimpleDateFormat("yyyy-M-d").parse(dateString);
// Then get the day of week from the Date based on specific locale.
String dayOfWeek = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(date);
System.out.println(dayOfWeek); // Friday
これは素晴らしいJavaクラスにまとめられています。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class DateUtility
{
public static void main(String args[]){
System.out.println(dayName("2015-03-05 00:00:00", "YYYY-MM-DD HH:MM:ss"));
}
public static String dayName(String inputDate, String format){
Date date = null;
try {
date = new SimpleDateFormat(format).parse(inputDate);
} catch (ParseException e) {
e.printStackTrace();
}
return new SimpleDateFormat("EEEE", Locale.ENGLISH).format(date);
}
}
+2もし私ができる... –
受け入れられた答えである必要があります! 'java.text.ParseExceptionをインポートすることを忘れないでください。 import java.text.SimpleDateFormat; import java.util。*; ' –
Joda-Timeライブラリを使用すると、この種の日時作業が簡単になります。シンプルな1ライナー。
String dayOfWeek = new LocalDate(2014, 1, 2).dayOfWeek().getAsText(java.util.Locale.ENGLISH);
System.out.println("dayOfWeek: " + dayOfWeek);
実行...
dayOfWeek: Thursday
- 1. 指定された月と年の最終日の名前を見つける
- 2. iOSの今日の前日の月曜日を見つける
- 3. SASは年齢から生年月日を見つけます
- 4. 生年月日から年月日
- 5. C#で年、年、月、日の日をどのように見つけることができますか?
- 6. moment - 指定された月の日の名前を見つける
- 7. 日付を月の名前と年に変換する
- 8. 2つの日付の年と月の違いを見つける方法は?
- 9. 前年開始月/日と終了月/日
- 10. 年/月/日を年月日に変更する
- 11. 月、日、年だけで日付ピッカーショーを変更する方法
- 12. javascript作成日年月日
- 13. netCDFファイル名の年、月、日のループ
- 14. ルビーのTime.new(年、月、日)とTime.local(年、月、日)の差
- 15. アンドロイドで今月の土曜日と日曜日を見つける方法は?
- 16. 前の日曜日の日付アルゴリズムを見つける
- 17. 有効日を日、月、年で確認
- 18. 年の最初の日のインデックスを見つける(新年)
- 19. /blog /:年/:月/:日のRuby on Railsの名前付きルート
- 20. Bigqueryの完全な日付(年月日)〜(年月)
- 21. 1970年1月1日より前の日付をR
- 22. ラテックス日付日時計算月日年
- 23. Nullableでの年月日
- 24. (年、月と日)のギでアンドロイドで2つの日付の差
- 25. 月月の範囲の終了日を見つけるSQL Server
- 26. 日付ピッカー - 月/年
- 27. 生年月日ウィザードプログラム
- 28. ブートストラップ日付ピッカー - 月と年だけ
- 29. Python形式の日付は「1991年1月1日月曜日」
- 30. 30日前のファイルを見つける
あなたが最もあなたを助けた答えを受け入れる必要があり、あなたの答えを発見した場合。 – RMT