这个的Java日期时间格式
这个的Java日期时间格式是什么 2012年11月26日星期一13:57:03 SGT 我想将此字符串转换为日期,并将其转换为另一种格式,如“yyyy-MM-dd HH:MM:ss” 将日期转换为字符串并不难 格式格式化程序=新的SimpleDataFormat(“yyyy-MM-dd HH:MM:ss”) 但我发现没有有效的格式将“Mon Nov 26 13:57:03 SGT 2012”转换为日期格式 ===== 找到的解决方案:这个的Java日期时间格式,java,datetime,Java,Datetime,这个的Java日期时间格式是什么 2012年11月26日星期一13:57:03 SGT 我想将此字符串转换为日期,并将其转换为另一种格式,如“yyyy-MM-dd HH:MM:ss” 将日期转换为字符串并不难 格式格式化程序=新的SimpleDataFormat(“yyyy-MM-dd HH:MM:ss”) 但我发现没有有效的格式将“Mon Nov 26 13:57:03 SGT 2012”转换为日期格式 ===== 找到的解决方案: DateFormat oldDateFormat = new
DateFormat oldDateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Format newDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date oldDate = oldDateFormat.parse(oldTimeString);
String newDateString = newDateFormat.format(oldDate);
这将起作用,
EEE MMM dd HH:mm:ss z yyyy
您可以在SimpleDataFormat
的javadoc中找到示例。请参见好的,这段代码会产生一些输出
。。。但它使用默认的系统时区作为输出。现在还不清楚你想要结果在哪个时区。Date
中没有存储时区的内容,因此很难保留文本中给出的原始时区,因此您需要自己决定使用哪个时区
注意,我在输入和输出中都指定了Locale.US
;这通常适用于指定自定义格式时,尤其是对于依赖于月和日名称的输入
如评论中所述,我个人建议在日期/时间工作中尽可能使用。。。这是一个比日期
/日历
好得多的API。不幸的是,Joda Time无法解析时区-从DateTimeFormat
的文档:
区域名称:无法分析时区名称('z')
还值得注意的是,如果有任何方法可以影响输入数据,那么将它们从使用时区缩写中移开将是一个很好的步骤。尝试
SimpleDateFormat.parse()
函数将字符串转换为日期
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date parseDate = sdf.parse(strInput);
小心解析异常现在jon skeet会来告诉您使用Joda time.=)@伊万诺维奇:一般来说是的,但我不确定乔达时间在解析时是否能处理时区缩写…@JonSkeet我没有用过乔达时间。但是谢谢你让我的预言(我之前的评论)成真=)@Iannyboy,如果有任何帮助,你能接受答案吗?看这里:这应该能解决你的问题。。
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CPDateTime
{
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
//subtracting a day
//cal.add(Calendar.DATE, -1);
cal.add(Calendar.MONTH, -1);
SimpleDateFormat prev_day = new SimpleDateFormat("dd");
SimpleDateFormat prev_month = new SimpleDateFormat("MM");
SimpleDateFormat prev_year = new SimpleDateFormat("YYYY");
String prev_day_str = prev_day.format(new Date(cal.getTimeInMillis()));
System.out.println(prev_day_str);
String prev_month_str = prev_month.format(new Date(cal.getTimeInMillis()));
System.out.println(prev_month_str);
String prev_year_str = prev_year.format(new Date(cal.getTimeInMillis()));
System.out.println(prev_year_str);
}
}
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CPDateTime
{
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
//subtracting a day
//cal.add(Calendar.DATE, -1);
cal.add(Calendar.MONTH, -1);
SimpleDateFormat prev_day = new SimpleDateFormat("dd");
SimpleDateFormat prev_month = new SimpleDateFormat("MM");
SimpleDateFormat prev_year = new SimpleDateFormat("YYYY");
String prev_day_str = prev_day.format(new Date(cal.getTimeInMillis()));
System.out.println(prev_day_str);
String prev_month_str = prev_month.format(new Date(cal.getTimeInMillis()));
System.out.println(prev_month_str);
String prev_year_str = prev_year.format(new Date(cal.getTimeInMillis()));
System.out.println(prev_year_str);
}
}