我试图将261107解析为ddmmyy中格式化的日期
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class parse {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
String strRawData = "A2611070830151439.5935N 102057.0442E6.68152ID=AMY123";
String strCode = strRawData.substring(0, 1);
String datetemp = strRawData.substring(1, 7);
SimpleDateFormat formatter = new SimpleDateFormat("ddmmyy");
Date datelog = formatter.parse(datetemp);
System.out.println(strCode);
System.out.println(datetemp);
System.out.println(datelog);
}
}
此代码返回:
A
261107
Fri Jan 26 00:11:00 SGT 2007
答案 0 :(得分:3)
dd
表示该月的某一天
MM
表示月份(您使用mm
表示分钟)
yy
表示年份
对SimpleDateFormatter
产生的小修改:
SimpleDateFormat dt = new SimpleDateFormat("ddMMyy");
这是来自Change date format in a Java string
的备忘单G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00
如果您想格式化日期的输出,可以使用其他SimpleDateFormatter
和.format(Date)
方法。
以下是如何执行此操作的示例:
public static void main(String[] args) throws ParseException {
String strRawData = "261107";
SimpleDateFormat dateParser = new SimpleDateFormat("ddMMyy"); //formatter for parsing date
SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy"); //formatter for formatting date output
Date date = dateParser.parse(strRawData);
System.out.println(dateFormatter.format(date));
}
26-11-2007
答案 1 :(得分:2)
您的SimpleDateFormat
中存在问题。
您必须使用资本M数月:
SimpleDateFormat formatter = new SimpleDateFormat("ddMMyy");
请参阅Java提供的SimpleDateFormat表:
答案 2 :(得分:2)
使用此SimpleDateFormat:
SimpleDateFormat formatter = new SimpleDateFormat("ddMMyy");
答案 3 :(得分:1)
您需要使用MM
而不是mm
数月。大写是几个月;小写是分钟。