标签: simpledateformat

SimpleDateFormat 不维护时区

我有一个以下格式的日期对象:

2013 年 1 月 20 日星期日 10:12:27 GMT+02:00

上述时间正确显示在 Microsoft Outlook 中:

2013 年 1 月 20 日星期日 12:12 PM(这是 GMT+2 >> 客户端时区的时间)

当尝试将日期对象格式化为SimpleDateFormat在 Outlook 中显示时,使用以下代码:

SimpleDateFormat sdf=new SimpleDateFormat(
    "EEE M/d/yyyy hh:mm a");
    String receivedDate = sdf.format(email.getDateTimeReceived());
Run Code Online (Sandbox Code Playgroud)

格式化的结果是:

2013 年 1 月 20 日星期日 10:12

所以缺少两个小时的时区差异。

请告知如何解决该问题,谢谢。

java datetime simpledateformat

3
推荐指数
1
解决办法
2496
查看次数

如何从String值创建Date对象

在运行以下代码时,我得到了一个UNPARSABLE DATE EXCEPTION.

我该如何解决?

   package dateWork;

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class DateCreation {

        /**
         * @param args
         */
        public static void main(String[] args) {

            String startDateString = "2013-03-26";
            DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); 
            Date startDate=null;
            String newDateString = null;
            try 
            {
                startDate = df.parse(startDateString);
                newDateString = df.format(startDate);
                System.out.println(startDate);
            } catch (ParseException e) 
            {
                e.printStackTrace();
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

java date-format simpledateformat date-formatting

3
推荐指数
1
解决办法
2万
查看次数

Java SimpleDateFormat 上午/下午

我得到的日期格式为:MM-dd-yy hmma zzz。问题是我只在上午得到 A 或在下午得到 P。如何将具有该格式的字符串解析为日期对象?

  • 亚历克斯

java parsing date-format simpledateformat

3
推荐指数
1
解决办法
2万
查看次数

使用SimpleDateFormat.parse时错误的月份

在我的程序中有一个非常奇怪的问题.在这里你可以看到String birthdayLog检查它:

birthday = String.valueOf(birthYear) + "-" + String.valueOf(birthMonth) + "-" + String.valueOf(birthDay);
Log.i(TAG, "Birthday: " + birthday)
Run Code Online (Sandbox Code Playgroud)

然后我把它放到SimpleDateFormat并检查它Log:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");

Date birthDate = sdf.parse(birthday);
Log.i(TAG, "Birth date  : " + birthDate);
Run Code Online (Sandbox Code Playgroud)

然后Logcat我有:

I/App? Birthday: 1999-10-15
I/App? Birth date: Fri Jan 15 00:10:00 GMT+04:00 1999
Run Code Online (Sandbox Code Playgroud)

正如你在日期中看到的那样Jan,但是在字符串中它的10日期应如下所示:

Fri Nov 15 00:10:00 GMT+04:00 1999
Run Code Online (Sandbox Code Playgroud)

我的错误在哪里?

PS我认为我的问题与使用SimpleDateFormat.parse()时获取错误数据有某种联系

java android simpledateformat

3
推荐指数
1
解决办法
3488
查看次数

Java 时区时间格式

我正在尝试以 ( ) 格式获取日期的输出String

\n\n
\n

20170801\xe2\x80\x8b \xe2\x80\x8b123030\xe2\x80\x8b \xe2\x80\x8b美国/洛杉矶

\n
\n\n

但使用这段代码:

\n\n
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd hhmmss Z", Locale.US);\nsdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));\nSystem.out.println(sdf.format(new java.util.Date()));\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到的输出为(注意区域部分):

\n\n
\n

20174904 024908 -0700

\n
\n\n

知道如何修复它吗?我需要打印"\xe2\x80\x8bAmerica/Los_Angeles"而不是"-0700".

\n

java timezone datetime datetime-format simpledateformat

3
推荐指数
1
解决办法
3009
查看次数

当年份不是四位数字时,日期解析异常

我有以下 Java 代码。

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
String expiryDateInString = "05/14/86";

final Instant expiryDate = dateFormat.parse((expiryDateInString)).toInstant();
Run Code Online (Sandbox Code Playgroud)

我希望这会导致解析异常,但我得到的年份被解析为 0086,我相信这已经是过去的事了。我怎样才能使年份成为严格的 4 位数年份,而其他任何年份都会例外。

java datetime date simpledateformat

3
推荐指数
1
解决办法
857
查看次数

DateFormat 月份为大写

如何将日期格式设置为以下视图 OCTOBER 21, 2018(月份大写)?我可以通过"%1$TB %1$te, %1$tY"模式获取它,但我需要通过 SimpleDateFormat 来完成。你能建议我该怎么做吗?

java date-format simpledateformat date-formatting uppercase

3
推荐指数
1
解决办法
2万
查看次数

Kotlin - SimpleDateFormat 解析需要无限时间

我正在尝试解析日期字符串,SimpleDateFormat它永远不会停止也不给出任何异常。请看下面的代码,

fun getDate(dateStr: String) {

    try {
        /** DEBUG dateStr = '2006-04-16T04:00:00Z' **/
        val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH)
        val mDate = formatter.parse(dateStr) // this never ends while debugging
    } catch (e: Exception){
        Logger.e("Error $e") // this never gets called either
    }
}
Run Code Online (Sandbox Code Playgroud)

可能的问题是什么?

注意:我正在使用,

Android Studio:3.4.1,Kotlin 版本:1.3.31,最小 SDK:23,目标 SDK:28,编译 SDK:28

debugging datetime android simpledateformat kotlin

3
推荐指数
1
解决办法
2万
查看次数

为什么 SimpleDateFormat.parse 不会在这里抛出异常?

首先,请注意我在这里坚持使用 java6。

我正在尝试从可能采用不同格式的字符串中获取日期。出于某种原因,我没有得到 ParseException ,我希望有一个......

    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class test1{

      public static void main(String argc[]){
          System.out.println(parseAllDateFormats(argc[0]));
    }

      private static final String[] dateFormats = "yyyyMMdd,yyyy/MM/dd,yyyy-MM-dd,dd/MM/yyyy,dd-MM-yyyy,dd-MMM-yyyy,yyyy MM dd".split(",");
      public static Date parseAllDateFormats(String date) {
          if (date == null)
              return null;
          for (int f = 0; f < dateFormats.length; f++) {
              String format = dateFormats[f];
              try {
                  SimpleDateFormat dateFormat = new SimpleDateFormat(format);
    System.out.println("trying " + format);                
                  return dateFormat.parse(date);
              }
              catch (Exception e) {}
          }
          return null;
      }

    }
Run Code Online (Sandbox Code Playgroud)

运行:java test1 1980-04-25 …

java simpledateformat

3
推荐指数
1
解决办法
987
查看次数

SimpleDateFormat 导致无法解析的错误

我有点使用以下源来创建我自己的 sdf 模式:https : //docs.oracle.com/en/java/javase/13/docs/api/java.base/java/text/SimpleDateFormat.html

很遗憾

    SimpleDateFormat mFormatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
    ...
    private Date getLatestTimeStamp() throws ParseException {
         return mFormatter.parse("Mon, 19 Dec 2019 11:32:04 +0000");
    }
Run Code Online (Sandbox Code Playgroud)

导致以下错误,我不明白为什么:

java.text.ParseException: Unparseable date: "Mon, 19 Dec 2019 11:32:04 +0000"
Run Code Online (Sandbox Code Playgroud)

任何帮助都是极好的!

编辑:我正在使用 JDK 13

编辑2:

因此,我清理了我的代码,创建了一个新项目,但它仍然无法正常工作:

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;

public class Main {

    public static void main(String[] args) {

        String source = "Thu, 19 Dec 2019 11:32:04 +0000";
        DateTimeFormatter mFormatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z"); …
Run Code Online (Sandbox Code Playgroud)

java simpledateformat unparseable java-13

3
推荐指数
1
解决办法
81
查看次数