Tag: simpledateformat

将字符串转换为星期几(不是确切的日期)

我收到一个String ,这是一周的拼写日,例如星期一。 现在我想获得当天的常量整数表示,它在java.util.Calendar 。 我是否真的必须做if(day.equalsIgnoreCase(“Monday”)){…}else if(…){…}我自己? 有一些简洁的方法吗? 如果我挖掘SimpleDateFormat并将其与Calendar混合,我生成的行几乎与键入丑陋的if-else-to-infitity statetment一样多。

Android Chronometer:时间格式问题

为什么我的天文台在我告诉之后不会停下来? 我发现它似乎与我测试过的平板电脑是隔离的(7英寸Galaxy Tab )。 我不知道为什么它可以在我的手机上工作但不能在平板电脑上工作。 Chronometer在两种布局中的设置相同(因为我对不同的屏幕尺寸使用不同的布局)。 以下是class上处理Chronometer方法: this.chrono = (Chronometer) findViewById(R.id.calling_crono); chrono.setOnChronometerTickListener(new OnChronometerTickListener() { public void onChronometerTick(Chronometer chronometer) { String currentTime= chrono.getText().toString(); if(currentTime.equals(“00:20”)) { chrono.stop(); Intent intent = new Intent(QuizActivity.this, ResultActivity.class); Bundle b = new Bundle(); int end = -5; b.putInt(“score”, score); b.putInt(“end”, end); intent.putExtras(b); startActivity(intent); finish(); } } }); public void startCrono() { chrono.setBase(SystemClock.elapsedRealtime()); […]

Java添加格式为dd的日期:HH:mm:ss

我有三个日期作为String对象的格式: dd:HH:mm:ss 00:1:9:14 00:3:10:4 00:3:39:49 如何在Java中添加这些日期以获得总和( 00:7:59:07 )? 示例代码: SimpleDateFormat sdf = new SimpleDateFormat(“dd:HH:mm:ss”); Date d1 = sdf.parse(“00:1:9:14”); Date d2 = sdf.parse(“00:3:10:4”); Date d3 = sdf.parse(“00:3:39:49”); System.out.println(d1); System.out.println(d2); System.out.println(d3); Date d = new Date(d1.getTime() + d2.getTime() + d3.getTime()); System.out.println(d); 输出(错误): Wed Dec 31 01:09:14 IST 1969 Wed Dec 31 03:10:04 IST 1969 Wed Dec 31 […]

将简短的美国日期解析为yyyy-MM-dd,java

我想解析日期“3/27/11”,我认为这个日期等于美国的短日期。 DateFormat df1 = new SimpleDateFormat(“MM/dd/yy”); DateFormat df2 = new SimpleDateFormat(“yyyy-MM-dd”); Date date = (Date) df1.parseObject(“03/27/11”); System.out.println(“New date: ” + df2.format(date)); 我在几个java教程中找到了上面的代码,但似乎没有用。 对于我的一些方式, Exception in thread “main” java.lang.AssertionError: Default directory must be absolute/non-UNC 这是我想要实现的目标, 输入:3/27/11 (03/27/11也应该是一个有效的输入) 输出:2011-03-27 提前致谢!

hh:mm a和HH之间的差异:mm a

这是我原来的代码 – String dateString = “23 Dec 2015 1:4 PM”; Locale locale = new Locale(“en_US”); SimpleDateFormat formatter = new SimpleDateFormat(“dd MMM yyyy HH:mm a”); DateFormat df = new SimpleDateFormat(“dd MMM yyyy HH:mm a”, locale); Date date = null; try { date = formatter.parse(dateString); } catch (ParseException e) { LOGGER.error(e); } String newDate = df.format(date); System.out.println(“oldDate […]

将日期字符串(EST)转换为Java日期(UTC)

我需要一些关于这个java方法的建议。 此方法的目的是获取表示日期的字符串 – 此字符串是从EST时区中的日期创建的 – 并将其转换为UTC时区中的Java Date对象。 private Date buildValidationDate(String dateString) throws ParseException { System.out.println(“dateString ” + dateString); SimpleDateFormat dateFormat = new SimpleDateFormat(“MM/dd/yyy hh:mm a”); dateFormat.setTimeZone(TimeZone.getTimeZone(“UTC”)); dateFormat.setLenient(true); Date dt = dateFormat.parse(dateString); System.out.println(“dt ” + dt); return dt; } 我看到的问题是dt的价值似乎已经消失了。 例如,如果dateString是’10 / 16/2012 12:06 PM’ – 我期望dt(以UTC为单位)的值类似于’2012年10月16日星期二下午4:06’。 相反,dt的值是’Tue Oct 16 07:06:00 CDT 2012’。 这似乎不是正确的UTC时间。 我很感激任何建议,我很抱歉,如果这似乎是一个简单的问题,我在Java日期遇到了很多麻烦。 我不确定我是否编码错误或者我的方法有问题。 […]

Servlet中的SimpleDateFormat

我在Servlet中使用了很多SimpleDateFormat对象。 不幸的是,SimpleDateFormat不是线程安全的。 因此,我考虑用ThreadLocal包装它以促进SimpleDateFormat对象的重用。 我写了一个util-class来启用它: public class DateUtil { private final static ThreadLocal dateFormat = new ThreadLocal() { return new SimpleDateFormat(); } public static SimpleDateFormat get () { return dateFormat.get(); } } 实际上,这似乎导致内存泄漏。 关闭我的webapp时,Tomcat会记录以下错误消息: 严重:Web应用程序[]使用[null]类型的键创建了一个ThreadLocal(值[com.example.util.DateUtil$2@50242f7d]),类型为[java.text.SimpleDateFormat](value [java.text] .SimpleDateFormat @ d91b489b])但在Web应用程序停止时无法将其删除。 这很可能造成内存泄漏。 我理解内存泄漏的原因,但是在Servlet中处理SimpleDateFormat-objects(或任何其他非线程安全对象)的最佳方法是什么?

SimpleDateFormat模式基于语言环境,但强制使用4位数年份

我需要建立一个像dd/MM/yyyy这样的日期格式。 它几乎像DateFormat.SHORT ,但包含4年的数字。 我尝试用它来实现它 new SimpleDateFormat(“dd//MM/yyyy”, locale).format(date); 但是对于美国语言环境,格式错误。 是否有一种通用的方法来格式化基于区域设置更改模式的日期? 谢谢

从字符串开始的Java星期几

我有这个简单的代码: 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)); 十月二十九日是星期六,为什么我会弄错?

SimpleDateFormat始终以错误的时区返回1970.01.17

我一直在使用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 = […]