提问者:小点点

如何在Java中获取字符串的特定部分


我正在开发一个Android应用程序,可以从互联网上获取日期。 我有一个完整的日期格式,像这样:2020-06-13t16:21:15.239920+02:00。 我想要得到一个月的某一天(在本例中是13)。


共3个答案

匿名用户

String str = "2020-06-13T16:21:15.239920+02:00";
String substr = "";

 // prints the substring after index 7(8 includes) till index 9(10 excludes)
 substr = str.substring(8, 10);

匿名用户

拆分字符串并提取数据总是一个坏主意,因为一旦日期,月份或日期字符串的任何部分发生变化,字符串索引也会发生变化,字符串就会更改为其他值

因此请使用DateTimeFormatter

import java.time.MonthDay;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;

public class SDF {

    public static void main(String[] args) {
        final TemporalAccessor parse = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSxxx")
                .parse("2020-06-13T16:21:15.239920+02:00");

        int dayOfMonth = MonthDay.from(parse).getDayOfMonth();
        System.out.println(dayOfMonth);
    }
}

匿名用户

import java.io.IOException;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) throws IOException {
        DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
        String dateTimeStr = "2020-06-13T16:21:15.239920+02:00";

        // Define ZoneOffset
        ZoneOffset zoneOffset = ZoneOffset.ofHours(2);

        // Parse date/time strings into OffsetDateTime
        OffsetDateTime startDateTime = OffsetDateTime.parse(dateTimeStr, formatter).withOffsetSameLocal(zoneOffset);

        int day = startDateTime.getDayOfMonth();
        System.out.println(day);
    }
}

输出:

13