文字列の日付を長いミル秒に変換する方法


回答:


154

SimpleDateFormatの使用

String string_date = "12-December-2012";

SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
try {
    Date d = f.parse(string_date);
    long milliseconds = d.getTime();
} catch (ParseException e) {
    e.printStackTrace();
}

16
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date date = (Date)formatter.parse("12-December-2012");
long mills = date.getTime();

11

誰かがこの質問に現代的な答えを提供する時が来ました。2012年に質問されたとき、当時投稿された回答も良い回答でした。なぜ答えはまた、長い時代遅れのクラスを使用する2016年に掲示SimpleDateFormatし、Date私にはもう少し謎のです。java.time、JSR-310としても知られている最新のJava日付と時刻APIは、操作が非常に優れています。ThreeTenABPを介してAndroidで使用できます。この質問を参照してください:AndroidプロジェクトでThreeTenABPを使用する方法

ほとんどの場合、UTCでの1日の始まりのエポックからのミリ秒を使用することをお勧めします。これらを取得するには:

    DateTimeFormatter dateFormatter
            = DateTimeFormatter.ofPattern("d-MMMM-uuuu", Locale.ENGLISH);
    String stringDate = "12-December-2012";
    long millisecondsSinceEpoch = LocalDate.parse(stringDate, dateFormatter)
            .atStartOfDay(ZoneOffset.UTC)
            .toInstant()
            .toEpochMilli();
    System.out.println(millisecondsSinceEpoch);

これは印刷します:

1355270400000

特定のタイムゾーンで1日の開始時刻が必要な場合は、UTCではなくそのタイムゾーンを指定します。次に例を示します。

            .atStartOfDay(ZoneId.of("Asia/Karachi"))

予想どおり、これによりわずかに異なる結果が得られます。

1355252400000

注意すべきもう1つのポイントは、にロケールを指定することを忘れないでくださいDateTimeFormatter。私は12月を英語にしたが、その月が同じと呼ばれる他の言語もあるので、自分で適切なロケールを選択してください。ロケールを指定しなかった場合、フォーマッタはJVMのロケール設定を使用します。これは多くの場合に機能する可能性があり、異なるロケール設定のデバイスでアプリを実行すると、ある日予期せず失敗します。


9

SimpleDateFormatを解析しStringて返すことができるクラスとクラスDategetTimeメソッドを見てくださいDate



3

simpleDateFormatを使用して、文字列の日付を解析できます。


1

最も簡単な方法は、Date()とgetTime()を使用した日付です。

    Date dte=new Date();
    long milliSeconds = dte.getTime();
    String strLong = Long.toString(milliSeconds);
    System.out.println(milliSeconds)

1

simpledateformatを使用すると、簡単に実現できます。

1)最初にsimpledateformatterを使用して文字列をjava.Dateに変換します。

2)getTimeメソッドを使用して、日付からミリ秒のカウントを取得します

 public class test {
      public static void main(String[] args) {
      String currentDate = "01-March-2016";
      SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
     Date parseDate = f.parse(currentDate);
     long milliseconds = parseDate.getTime();
  }
        }

より多くの例をクリックここに


0

以下のコードを試してください

        SimpleDateFormat f = new SimpleDateFormat("your_string_format", Locale.getDefault());
        Date d = null;
        try {
            d = f.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long timeInMillis = d.getTime();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.