我将与第三方API。他们接受的日期模式如下:
2012-02-15T17:34:37.937-0600
我知道图案应该是一样的
yyyy-MM-ddTHH:mm:ss.s
但是我不确定如何表示最后一个"-0600"时区?我想标准时区是"-06:00",有人知道如何去掉日期模式中的":"吗?谢谢。
brqmpdu11#
也许你想要"Z"参见http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html:
此代码:
final SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ");
产生:2012年5月11日12:21:57.598 + 1000
sqxo8psd2#
SimpleDateFormat对于自定义字符串表示应该很有帮助:Z时区RFC 822时区-0800
6qfn3psc3#
我知道图案应该是一样的第一个月不,这个模式有两个问题:1.小数秒的符号是S,但您使用的是s。1.模式中缺少ZoneOffset说明符Z。
S
s
ZoneOffset
Z
accepted answer使用SimpleDateFormat,这在2012年是正确的做法。2014年3月,java.util日期-时间API及其格式化API SimpleDateFormat被modern Date-Time API取代。从那时起,强烈建议停止使用传统的日期-时间API。
SimpleDateFormat
java.util
import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.Locale; class Main { public static void main(String[] args) { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSZ", Locale.ENGLISH); System.out.println(OffsetDateTime.now(ZoneOffset.of("-06:00")).format(dtf)); } }
2022-12-28T13:21:05.459-0600
ONLINE DEMO从**Trail: Date Time**了解有关现代日期-时间API的更多信息。
3条答案
按热度按时间brqmpdu11#
也许你想要"Z"
参见http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html:
此代码:
产生:
2012年5月11日12:21:57.598 + 1000
sqxo8psd2#
SimpleDateFormat对于自定义字符串表示应该很有帮助:
Z时区RFC 822时区-0800
6qfn3psc3#
我知道图案应该是一样的
第一个月
不,这个模式有两个问题:
1.小数秒的符号是
S
,但您使用的是s
。1.模式中缺少
ZoneOffset
说明符Z
。Java.时间
accepted answer使用
SimpleDateFormat
,这在2012年是正确的做法。2014年3月,java.util
日期-时间API及其格式化APISimpleDateFormat
被modern Date-Time API取代。从那时起,强烈建议停止使用传统的日期-时间API。ONLINE DEMO
从**Trail: Date Time**了解有关现代日期-时间API的更多信息。