2017-03-31 17 views
-1

私は、文字列私はこの文字列の日付形式は何ですか?

new Date().parse('dd/mm/yyyy', dateString) 

で使用しようとしている

2017-03-01T10:15:41-0800 

として次の日付を持っているしかし、私はフォーマットを把握することはできません。

+1

Dateクラスには、このような解析メソッドはありません。 Java Stringは二重引用符で囲まれています。そのコードはコンパイルできません。パターンは明らかにあなたが与えているパターンではありません。 Googleの "Javaで日付を解析する方法"あなたは関連する結果がたくさんあります。 –

+0

@JBNizetこれは、間違っている可能性があります。それは有効なグルーヴィーです。 – weston

+1

@ user304966これは実際には面白い質問ですか? – weston

答えて

1

あなたdateStringと日付形式が一致していけない、それを試してみてください。 Groovyのスタイル:

def dateString = "2017-03-01T10:15:41-0800" 
new Date().parse("yyyy-MM-dd'T'HH:mm:ssZ", dateString) 

結果:あなたは日付書式パターンの詳細については、hereを参照することができ

Wed Mar 01 21:15:41 EAT 2017 

1

SimpleDateFormatの使用を検討してください:

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

class Main { 
    public static void main(String[] args) { 
    try { 
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssX"); 
     Date parsed = format.parse("2017-03-01T10:15:41-0800"); 
    } catch (ParseException e){ 
     e.printStackTrace(); 
    } 
    } 
} 

here!

+0

これはGroovyで日付を解析するのは本当に面倒です。 Javaの場合でも、Java 8の日付クラスはこれよりも難解です。 – BalRog

+0

私が質問に答えたときには、タグjavaなしのGroovyしかありませんでした。 – shash678

0

クラスは、独自のを含んで、静的解析方法(JB Nizetは、あなたの質問に彼のコメントで間違っていました)。

あなたは、一度だけこの解析を実行するだけで、このメソッドを使用する場合、詳細はhttp://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/Date.html#parse(java.lang.String,%20java.lang.String)

ので、参照してください。一方

、あなたがこのような変換に複数回を実行することを計画している場合、 は、複数回てSimpleDateFormatインスタンス(1回) を作成し、それを使用する方が効率的です。

0

あなたができれば、あなたは、Java 8にしている、java.util.Dateを回避し、新しいjava.timeクラスのいずれかにそれを解析:UTC:あなたはその後、別のゾーン(すなわちでこの時間をしたい場合は

import java.time.* 
import java.time.format.DateTimeFormatter 

def dateString = "2017-03-01T10:15:41-0800" 

def date = OffsetDateTime.parse(dateString, 
           DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ")) 

)、次の操作を実行できます。

def utcDate = date.atZoneSameInstant(ZoneOffset.UTC) 
関連する問題