2020-04-03 20:17:46 到 "yyyy-MM-dd'T'HH:mm:ss" 格式
2020-04-03 20:17:46 to "yyyy-MM-dd'T'HH:mm:ss" format
在 java(java.util.*
或 Joda api )中有什么方法可以将“2020-04-03 20:17:46”转换为 "yyyy-MM-dd'T'HH:mm:ss"
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
.parse("2020-04-03 20:17:46")
它给予 java.text.parseException 总是
这对你有帮助吗? http://tutorials.jenkov.com/java-internationalization/simpledateformat.html
首先你需要解析旧格式的字符串,你会得到一个日期对象。然后用你的新格式创建一个新的 SimpleDateFormat,然后你可以格式化 Date 对象。
String dateString = "2020-04-03 20:17:46";
SimpleDateFormat output = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateString);
String formattedDate = output.format(date);
它不会直接那样工作,但如果你仍然想这样做,这是过程。
创建具有模式 "yyyy-MM-dd HH:mm:ss")
的 SimpleDateFormat 对象
使用它来解析字符串。最终你会在这两种情况下得到约会。对于不包含它们的日期,在模式中使用 T 是否有任何特定原因?
如果您使用 Java 8 或更高版本,请使用 java.time
。
看这个简单的例子:
public static void main(String[] args) {
// example datetime
String datetime = "2020-04-03 20:17:46";
// create a formatter that parses datetimes of this pattern
DateTimeFormatter parserDtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// then parse the datetime with that formatter
LocalDateTime ldt = LocalDateTime.parse(datetime, parserDtf);
// in order to output the parsed datetime, use the default formatter (implicitly)
System.out.println(ldt);
// or format it in a totally different way
System.out.println(ldt.format(
DateTimeFormatter.ofPattern("EEE, dd. 'of' MMM 'at' hh-mm-ss a",
Locale.ENGLISH)
)
);
}
这输出
2020-04-03T20:17:46
Fri, 03. of Apr at 08-17-46 PM
请注意,这不考虑任何时区或偏移量,它仅表示由传递或解析的年、月、日、小时、分钟和秒组成的日期和时间,仅此而已。
不要使用 java.util.*
中的 Date/Time API,因为它们中的大多数现在是 outdated. Use java.time API。
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) throws IOException {
String strDatetime = "2020-04-03 20:17:46";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parsedDate = LocalDateTime.parse(strDatetime, formatter);
System.out.println(parsedDate);
}
}
输出:
2020-04-03T20:17:46
在 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
了解有关 DateTimeFormatter
的更多信息
使用 LocalDateTime。
Timestamp timestamp = Timestamp.parse("2020-04-03 20:17:46");
LocalDateTime localDateTime = timestamp.toLocalDateTime();
System.out.println(localDateTime); // 2020-04-03T20:17:46
在 java(java.util.*
或 Joda api )中有什么方法可以将“2020-04-03 20:17:46”转换为 "yyyy-MM-dd'T'HH:mm:ss"
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
.parse("2020-04-03 20:17:46")
它给予 java.text.parseException 总是
这对你有帮助吗? http://tutorials.jenkov.com/java-internationalization/simpledateformat.html
首先你需要解析旧格式的字符串,你会得到一个日期对象。然后用你的新格式创建一个新的 SimpleDateFormat,然后你可以格式化 Date 对象。
String dateString = "2020-04-03 20:17:46";
SimpleDateFormat output = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateString);
String formattedDate = output.format(date);
它不会直接那样工作,但如果你仍然想这样做,这是过程。
创建具有模式 "yyyy-MM-dd HH:mm:ss")
的 SimpleDateFormat 对象使用它来解析字符串。最终你会在这两种情况下得到约会。对于不包含它们的日期,在模式中使用 T 是否有任何特定原因?
如果您使用 Java 8 或更高版本,请使用 java.time
。
看这个简单的例子:
public static void main(String[] args) {
// example datetime
String datetime = "2020-04-03 20:17:46";
// create a formatter that parses datetimes of this pattern
DateTimeFormatter parserDtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// then parse the datetime with that formatter
LocalDateTime ldt = LocalDateTime.parse(datetime, parserDtf);
// in order to output the parsed datetime, use the default formatter (implicitly)
System.out.println(ldt);
// or format it in a totally different way
System.out.println(ldt.format(
DateTimeFormatter.ofPattern("EEE, dd. 'of' MMM 'at' hh-mm-ss a",
Locale.ENGLISH)
)
);
}
这输出
2020-04-03T20:17:46
Fri, 03. of Apr at 08-17-46 PM
请注意,这不考虑任何时区或偏移量,它仅表示由传递或解析的年、月、日、小时、分钟和秒组成的日期和时间,仅此而已。
不要使用 java.util.*
中的 Date/Time API,因为它们中的大多数现在是 outdated. Use java.time API。
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) throws IOException {
String strDatetime = "2020-04-03 20:17:46";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parsedDate = LocalDateTime.parse(strDatetime, formatter);
System.out.println(parsedDate);
}
}
输出:
2020-04-03T20:17:46
在 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
了解有关DateTimeFormatter
的更多信息
使用 LocalDateTime。
Timestamp timestamp = Timestamp.parse("2020-04-03 20:17:46");
LocalDateTime localDateTime = timestamp.toLocalDateTime();
System.out.println(localDateTime); // 2020-04-03T20:17:46