Tag: simpledateformat

是否有另一种方法来检索给定语言环境的默认模式?

是否可以检索给定语言环境的默认模式,而不将DateFormat.get*Instance()返回的对象转换为SimpleDateFormat ? 我理解,在大多数情况下一切都会好的,但是在javadoc有一个注释, 这里 :“如果你想要更多地控制格式或解析,(或者想让你的用户更多地控制),你可以试试从工厂方法到SimpleDateFormat的DateFormat 。这适用于大多数国家; 只要记住将它放在try块中,以防遇到exception的问题 。“ 所以我想知道,如果我遇到一个不寻常的人 ,我该怎么办? 相关主题。 代码示例: /** * Returns ‘\n’-separated string with available patterns. * Optional adds appropriate language code to each pattern string. * * @param showLanguage Defines if language info is required. * @return String with available patterns, optional (if showLanguage is set * to “true”) adds […]

gson无法使用GsonBuilder.setDateFormat进行解析(“yyyy-MM-dd’T’HH:mm:ss.SSSZ”)

我从服务器获取此字符串: [ { “title”:”spoil the ones u love today”, “startDateTime”:”2014-08-10T20:10:36.7158Z” }, { “title”:”home made patisserie”, “startDateTime”:”2014-08-10T20:08:45.0218Z” } ] 我试着把它解析成一个对象 public class Offer implements Serializable { public String title; public Date startDateTime; } Type collectionType = new TypeToken<ArrayList>() {}.getType(); mOffersList.addAll((Collection) gson.fromJson(result, collectionType)); 但是当我将“startDate”定义为Date时 我从gson回来的系列是空的 当我将“startDate”定义为String时 集合正确填充。 我想更改其日期格式。 这就是我更喜欢将其保存为Date对象的原因。 我努力了 Gson gson = new GsonBuilder().setDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSSZ”).create; 然而Gson无法解析服务器的字符串 Date […]

将`Java.lang.String`转换为`oracle.sql.TIMESTAMPTZ`

我有以下Java.lang.String值表示TIMESTAMPTZ String值。 我需要将这些Java.lang.String转换为oracle.sql.TIMESTAMPTZ 。 “2016-04-19 17:34:43.781 Asia/Calcutta”, “2016-04-30 20:05:02.002 8:00”, “2003-11-11 00:22:15.0 -7:00”, “2003-01-01 02:00:00.0 -7:00”, “2007-06-08 15:01:12.288 Asia/Bahrain”, “2016-03-08 17:17:35.301 Asia/Calcutta”, “1994-11-24 11:57:17.303” 我试过很多方面。 样本1: 通过使用SimpleDateFormat尝试它 String[] timeZoneValues = new String[]{“2016-04-19 17:34:43.781 Asia/Calcutta”, “2016-04-30 20:05:02.002 8:00”, “2003-11-11 00:22:15.0 -7:00”, “2003-01-01 02:00:00.0 -7:00”, “2007-06-08 15:01:12.288 Asia/Bahrain”, “2016-03-08 17:17:35.301 Asia/Calcutta”, “1994-11-24 11:57:17.303”}; for(String timeZoneValue: timeZoneValues){ SimpleDateFormat […]

SimpleDateFormat的线程安全问题

我从程序员测试中得到了以下代码 private String formatDate(Date date) { String result = “”; //…. SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”); result = sdf.format(date); //… return result; } 以及多个线程一次使用该方法的附加信息。 这有什么问题吗? 我的答案是,不,它应该没问题(假设//部分没有其他事情发生)。 我的动机是没有使用全局或类数据结构。 日期作为参数从每个胎面传递,并且在方法内部仅使用局部变量和本地对象。 因此,每个线程将获取并使用它自己的SimpleDateFormat类的对象实例。 但是,这不是测试中的“正确”答案。 “正确”的答案是类SimpleDateFormat不是线程安全的,因此需要同步对该对象的访问。 那么,我或解决方案是否正确?

如何将java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S)格式化为日期(yyyy-MM-dd HH:mm:ss)

好吧,我有一个使用Date的细节,因为我从我的DataBase和变量“fecha”(日期)中获取一个Object来自同一个对象我得到一个java.sql.Timestamp ,所以格式化是毫秒,但我不希望出现毫秒。 所以我需要将我从数据库接收的日期格式化为没有毫秒数的新日期。 这是对象Factura: public class Factura implements java.io.Serializable { private FacturaId id; … private boolean activo; private Date fecha; } 在映射到DB的xml中,我有这个变量“fecha”的代码: 在数据库中,该列是fecha DATETIME 。 当我从我的数据库中获得一个对象Factura时,我得到了这种日期2013-10-10 10:49:29.0但是我希望它没有.0 (毫秒)。 我试过这个( factura是Factura对象): try { SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Date fechaNueva = null; String fechaStr = factura.getFecha().toString(); int tamaño = fechaStr.length()-2; fechaStr = fechaStr.substring(0, tamaño); //I […]

Java:以java.util.Date格式返回一个String

我将以201201格式(即YYYYMM格式)恢复输入。 现在我想按原样返回值201201,但它应该是java.util.Date格式 我很迷惑 String strDate = “201201”; SimpleDateFormat sdFormat = new SimpleDateFormat(“YYYYMM”); 现在我无法以java.util.Date格式返回值为201201 我已经编辑了它必须是YYYYMM格式的问题。 我试过这种方式 public class StringToDate { public static void main(String[] args) { DateFormat df = new SimpleDateFormat(“yyyymm”); try { Date today = df.parse(“201201”); System.out.println(df.format(today)); //System.out.println(“Today = ” + df.format(today)); } catch (ParseException e) { e.printStackTrace(); } } }

如何在java中将String转换为Date

我有一个像日期月份(2012年8月31日)的字符串。 我想将其转换为日期格式。 String string = “31082012”; Date date = new SimpleDateFormat(“DDMMYYYY”).parse(string); System.out.println(date);

无法使用SimpleDateFormat进行解析

我试图用“MMM d HH:mm:ss”来解析“Dec 6 04:13:01”,但它无法正常工作! 我花了很多时间,但无法弄明白。 任何想法失败的原因?

如何在Java中将String(日期)格式化为新的日期格式?

我会直截了当地说,我的目标就是如此改变 2018年5月24日 成 2018年5月24日。 这是我目前的代码: String content = “2018-05-24”; SimpleDateFormat old = new SimpleDateFormat(“yyyy-mm-dd”); Date oldDate = old.parse(content); SimpleDateFormat current = new SimpleDateFormat(“MMMM dd, yyyy.”); String newDate = current.format(oldDate); System.out.println(newDate); 但运行产生: 2018年1月24日。 我不确定为什么这会告诉我一月。 我知道我错了,我已经在StackOverFlow中搜索了类似的问题,但也许我做的不对。 任何建议?

Java日历日期错误

任何人都可以帮助我理解为什么我得到不同的月份值 SimpleDateFormat dateFormat = new SimpleDateFormat(“dd/MM/yyyy”); System.out.println(dateFormat.format(cal.getTime()) + “–” + cal.get(Calendar.MONTH)); 令人惊讶地显示 09/09/2012–8