我有一个带模式的SimpleDateFormat yyyy-M-d",以及以下场景:
String str = "02-03-04";
SimpleDateFormat f = new SimpleDateFormat("yyyy-M-d");
f.setLenient(false);
System.out.println(f.parse(str));
Run Code Online (Sandbox Code Playgroud)
输出是 Sat Mar 04 00:00:00 EST 2
我的目标是仅以2004-02-03的格式捕捉日期并忽略02-03-04.我认为模式中的yyyy需要4位数年份,但显然事实并非如此.任何人都可以解释为什么这不会抛出一个解析异常?我想要......
我是Java的新手,我对使用SimpleDateFormat和使用时有点困惑Calendar.我有一个Date-Object,想要提取GMT日期字符串yyyy-MM-dd HH:mm:ss.我住在德国,目前我们是GMT +0200.我的Date-Object的时间就是例如2011-07-18 13:00:00.我现在需要的是2011-07-18 11:00:00.我的时区的偏移量应自动计算.
我试过这样的事情,但我想某处有一个错误:
private String toGmtString(Date date){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone timeZone = TimeZone.getDefault();
Calendar cal = Calendar.getInstance(new SimpleTimeZone(timeZone.getOffset(date.getTime()), "GMT"));
sd.setCalendar(cal);
return sd.format(date);
}
Run Code Online (Sandbox Code Playgroud)
在某些设备上,datetring会像我想要的那样返回.在其他设备上,偏移量未正确计算,我从输入日期 - 对象接收日期和时间.你能给我一些提示或建议吗?我想我的方式获得默认时区不起作用?
我有这个简单的代码:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2011-10-29");
calendar.setTime(date);
Log.d("Debug","Day of the week = "+(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY));
Run Code Online (Sandbox Code Playgroud)
十月二十九日是星期六,为什么我会弄错?
我正在从XML解析这个日期格式:=>" 2011-12-06T07:41:14.016 + 00:00 ",我收到此错误:
我确定这是我正在使用的格式化声明,但我无法弄清楚它应该是什么......
这是我正在使用的声明:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ:ss");
Run Code Online (Sandbox Code Playgroud)
我得到了如何创建这个部分的格式:" 2011-12-06T07:41:14 ....",这是另一部分:=>".016 + 00:00 "这就是我的循环.
我已经在这里寻找答案:Android SimpleDateFormat页面,这里是Oracle SimpleDateFormat页面,但我担心我遗漏了一些基本的东西......
您是否对该特定日期格式的正确格式声明或相关资源有任何建议?
非常感谢提前!
示例代码说明了一切:
private void parse() throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy");
Date started = sdf.parse("Sep/22/2004");
// this triggers: java.text.ParseException: Unparseable date: "May/23/2010"
Date ended = sdf.parse("May/23/2010");
}
Run Code Online (Sandbox Code Playgroud)
不知道我还能添加什么.我正在尝试解析"MMM/dd/yyyy"日期,并且我得到了不一致的异常行为.感觉我错过了一些明显的东西.
我正在使用此处包含的代码来确定给定值是否为有效日期.在一个特定情况下,它正在评估以下街道地址:
100 112TH AVE NE
显然不是约会,但Java将其解释为:
太阳1月12日00:00:00 EST 100
有问题的代码:
String DATE_FORMAT = "yyyyMMdd";
try {
DateFormat dfyyyyMMdd = new SimpleDateFormat(DATE_FORMAT);
dfyyyyMMdd.setLenient(false);
Date formattedDate;
formattedDate = dfyyyyMMdd.parse(aValue);
console.debug(String.format("%s = %s","formattedDate",formattedDate));
} catch (ParseException e) {
// Not a date
}
Run Code Online (Sandbox Code Playgroud)
控制台返回:
11:41:40.063 DEBUG TestValues | formattedDate = Sun 1月12日00:00:00 EST 100
知道这里发生了什么吗?
当我将我的字符串对象mm/dd/yyyy格式转换为Date它给我
java.text.ParseException: Unparseable date: "09/17/2014"
Run Code Online (Sandbox Code Playgroud)
我想这样做:
String date= "09/17/2014";
DateFormat df = new SimpleDateFormat();
Date journeyDate= (java.sql.Date) df.parse(date);
Run Code Online (Sandbox Code Playgroud) 我一直在使用Processing 3.0,当我的Arduino输出某些值时,我正在尝试打印一个简单的时间戳,但它无效.我尝试使用SimpleDateFormat,但它总是返回1970.01.17 17:48:35 GMT,而不是实际时间.以下是MVCE:
void setup ()
{
SimpleDateFormat format = new SimpleDateFormat ("yyyy.MM.dd HH:mm:ss z");
format.setTimeZone (TimeZone.getDefault());
long timestamp = getTimeNow();
println(format.format(new Date(timestamp)));
println(timestamp);
}
long getTimeNow ()
{
Date d = new Date ();
Calendar cal = new GregorianCalendar();
long current = d.getTime()/1000;
long timezone = cal.get(Calendar.ZONE_OFFSET)/1000;
long daylight = cal.get(Calendar.DST_OFFSET)/1000;
return current + timezone + daylight;
}
Run Code Online (Sandbox Code Playgroud)
输出示例:
1970.01.17 17:48:35 GMT
1442915733
Run Code Online (Sandbox Code Playgroud)
我怀疑问题是什么getTimeNow(),因为,如果我将值插入在线纪元转换器,我得到正确的时间.上面的代码有什么问题?
我正在像这样格式化日期:
public static String toFormattedDate(@NonNull Time time, String toFormat) {
mDateFormat = new SimpleDateFormat(toFormat);
Date date = new Date();
date.setTime(time.toMillis(true));
return mDateFormat.format(date);
}
Run Code Online (Sandbox Code Playgroud)
我使用的格式是:
public static final String TIME = "hh:mm a";
Run Code Online (Sandbox Code Playgroud)
但这在我用于测试的两个设备之间有所不同...
如何在设备之间统一格式化?
这是我需要处理的日期格式
Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)
但我不知道最后两部分是什么.是GMT-0700固定的吗?它应该是这样的吗?
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT-0700' (z)");
Run Code Online (Sandbox Code Playgroud) java ×10
simpledateformat ×10
date ×5
android ×3
android-date ×1
calendar ×1
date-format ×1
dayofweek ×1
epoch ×1
gmt ×1
processing ×1