SimpleDateFormatクラスで使用できる日付形式について誰かに教えてもらえますか。
私はAPIを試しましたが、満足のいく答えを見つけることができませんでした。どんな助けでも大歓迎です。
SimpleDateFormatクラスで使用できる日付形式について誰かに教えてもらえますか。
私はAPIを試しましたが、満足のいく答えを見つけることができませんでした。どんな助けでも大歓迎です。
回答:
日付と時刻の形式については、以下で詳しく説明します。
SimpleDateFormat(Java Platform SE 7)-日付と時刻のパターン
あるかもしれませんn
あなたはおそらくすることができますフォーマットの数。ex-dd/MM/yyyy
または、YYYY-'W'ww-u
または文字を組み合わせて、必要なパターンを実現することもできます。パターン文字は以下の通りです。
G
-時代指定子(AD)y
-年(1996; 96)Y
-週年(2009; 09)M
-年の月(7月; 7月; 07)w
-年の週(27)W
-月の週(2)D
-年の日(189)d
-月の日(10)F
-月の曜日(2)E
-週の曜日名(火曜日;火曜日)u
-週の日数(1 =月曜日、...、7 =日曜日)a
-AM / PMマーカーH
-1日の時間(0-23)k
-1日の時間(1-24)K
-午前/午後の時間(0-11)h
-午前/午後の時間(1-12)m
-分(30)s
-秒単位(55)S
-ミリ秒(978)z
-一般的なタイムゾーン(太平洋標準時; PST; GMT-08:00)Z
-RFC 822タイムゾーン(-0800)X
-ISO 8601タイムゾーン(-08; -0800; -08:00)パースします:
2000-01-23T04:56:07.000 + 0000
使用する:
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
SimpleDateFormat
コンストラクターでロケールを設定できるようにします。SimpleDateFormat formatter = new SimpleDateFormat(pattern, locale);
http://www3.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.htmlから取得したサンプルコードをいくつか捨ててみましょう。 その後、理解するまでさまざまなオプションを試してみることができます。
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date now = new Date();
//This is just Date's toString method and doesn't involve SimpleDateFormat
System.out.println("toString(): " + now); // dow mon dd hh:mm:ss zzz yyyy
//Shows "Mon Oct 08 08:17:06 EDT 2012"
SimpleDateFormat dateFormatter = new SimpleDateFormat("E, y-M-d 'at' h:m:s a z");
System.out.println("Format 1: " + dateFormatter.format(now));
// Shows "Mon, 2012-10-8 at 8:17:6 AM EDT"
dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Format 2: " + dateFormatter.format(now));
// Shows "Mon 2012.10.08 at 08:17:06 AM EDT"
dateFormatter = new SimpleDateFormat("EEEE, MMMM d, yyyy");
System.out.println("Format 3: " + dateFormatter.format(now));
// Shows "Monday, October 8, 2012"
// SimpleDateFormat can be used to control the date/time display format:
// E (day of week): 3E or fewer (in text xxx), >3E (in full text)
// M (month): M (in number), MM (in number with leading zero)
// 3M: (in text xxx), >3M: (in full text full)
// h (hour): h, hh (with leading zero)
// m (minute)
// s (second)
// a (AM/PM)
// H (hour in 0 to 23)
// z (time zone)
// (there may be more listed under the API - I didn't check)
}
}
幸運を!
更新
他の質問は時代遅れです。SimpleDateFormat
何年も前に現代のjava.timeに取って代わられたようなひどいレガシークラスクラスに。
独自のカスタムフォーマットパターンを定義するために、のコードはのコードとDateTimeFormatter
似ていますが、まったく同じではありませんSimpleDateFormat
。必ずドキュメントを調べてください。そして、StackOverflowで多くの例を検索してください。
DateTimeFormatter f =
DateTimeFormatter.ofPattern(
"dd MMM uuuu" ,
Locale.ITALY
)
;
ISO 8601日時値の多くの種類のための標準的な定義フォーマット。これらの形式はデータ交換用に設計されており、マシンで簡単に解析できるだけでなく、文化を超えて人間が簡単に読み取ることができます。
java.timeの生成/文字列を解析するときのクラスは、デフォルトではISO 8601の形式を使用します。toString
&parse
メソッドを呼び出すだけです。フォーマットパターンを指定する必要はありません。
Instant.now().toString()
2018-11-05T18:19:33.017554Z
UTCの値の場合、 Z
、末尾のはUTCを意味し、「Zulu」と発音されます。
フォーマットパターンを指定するのではなく、java.timeに 自動的にローカライズさせることができます。使用DateTimeFormatter.ofLocalized…
メソッドをます。
特定の地域(タイムゾーン)の人々が使用する実時間で現在の瞬間を取得します。
ZoneId z = ZoneId.of( "Africa/Tunis" );
ZonedDateTime zdt = ZonedDateTime.now( z );
角かっこで囲まれたタイムゾーンの名前を追加するために賢明に拡張された標準ISO8601形式でテキストを生成します。
zdt.toString():2018-11-05T19:20:23.765293 + 01:00 [アフリカ/チュニジア]
自動ローカライズされたテキストを生成します。
Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale );
String output = zdt.format( f );
出力:lundi 5novembre2018à19:20:23 heure normale d'Europe centrale
一般に、ハードコードされたフォーマットパターンに悩まされるよりも、自動ローカライズする方が適切です。
java.timeフレームワークは、Java8以降に組み込まれています。これらのクラスは面倒古い取って代わるレガシーのような日付時刻クラスjava.util.Date
、Calendar
&を、SimpleDateFormat
。
詳細については、Oracleチュートリアルを参照してください。そして、StackOverflowで多くの例と説明を検索してください。仕様はJSR310です。
ジョダタイムプロジェクトは、今でメンテナンスモードへの移行をアドバイスjava.timeのクラス。
java.timeオブジェクトをデータベースと直接交換できます。JDBC4.2以降に準拠したJDBCドライバーを使用してください。文字列もクラスも必要ありません。Hibernate5およびJPA2.2はjava.timeをサポートします。java.sql.*
java.timeクラスはどこで入手できますか?
ここでフォーマットを確認してください http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
メイン
System.out.println("date : " + new classname().getMyDate("2014-01-09 14:06", "dd-MMM-yyyy E hh:mm a z", "yyyy-MM-dd HH:mm"));
方法
public String getMyDate(String myDate, String returnFormat, String myFormat)
{
DateFormat dateFormat = new SimpleDateFormat(returnFormat);
Date date=null;
String returnValue="";
try {
date = new SimpleDateFormat(myFormat, Locale.ENGLISH).parse(myDate);
returnValue = dateFormat.format(date);
} catch (ParseException e) {
returnValue= myDate;
System.out.println("failed");
e.printStackTrace();
}
return returnValue;
}