当前位置: 首页 > 知识库问答 >
问题:

如何从当前区域设置获取日期-时间格式字符串,作为SimpleDateFormat的参数

蓬新
2023-03-14
Calendar calendar=Calendar.getInstance();
formatString=getTheCurrentLocaleDateTimeFormatString();
SimpleDateFormat dateFormat = new SimpleDateFormat(formatString);
localeTimeString= dateFormat.format(calendar.getTimeInMillis());
displayToTheUser(localeTimeString);
displayToTheUser(formatString);

提供的代码片段旨在根据当前区域设置获取日期时间表单,但我不知道如何将其也作为格式字符串获取。它应该通过上面的getTheCurrentLocaleDateTimeFormatString()方法计算。

我看到有许多格式字符串模式可用。

这是相关文档页面:

https://developer.android.com/reference/java/text/simpledateformat#示例

由于我希望将该格式字符串作为模板显示给用户,并将其用作SimpleDateFormat的参数,我的问题是:如何获得当前区域设置的日期时间模式格式字符串?

共有1个答案

高运诚
2023-03-14

您可以按照以下方法进行操作:

SimpleDateFormat getTheCurrentLocaleDateTimeFormatString() {
    return (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());
}

测试程序:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat dateFormat = getTheCurrentLocaleDateTimeFormatString();
        String localeTimeString = dateFormat.format(calendar.getTimeInMillis());
        System.out.println(localeTimeString);
    }

    static SimpleDateFormat getTheCurrentLocaleDateTimeFormatString() {
        return (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());
    }
}

输出:

Sunday, 12 January 2020
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        Calendar calendar=Calendar.getInstance();
        String formatString=getTheCurrentLocaleDateTimeFormatString();
        System.out.println(formatString);
        SimpleDateFormat dateFormat = new SimpleDateFormat(formatString);
        String localeTimeString= dateFormat.format(calendar.getTimeInMillis());
        System.out.println(localeTimeString);
    }

    static String getTheCurrentLocaleDateTimeFormatString() {
        return ((SimpleDateFormat) DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault())).toLocalizedPattern();
    }
}

输出:

EEEE, d MMMM y
Sunday, 12 January 2020

“又一次更新”

根据您的另一个注释发布以下代码

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        String formatString = getTheCurrentLocaleDateTimeFormatString();
        System.out.println(formatString);
        SimpleDateFormat dateFormat = new SimpleDateFormat(formatString);
        String localeTimeString = dateFormat.format(calendar.getTimeInMillis());
        System.out.println(localeTimeString);
    }

    static String getTheCurrentLocaleDateTimeFormatString() {
        return ((SimpleDateFormat) DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL,
                Locale.getDefault())).toLocalizedPattern();
    }
}
EEEE, d MMMM y 'at' HH:mm:ss zzzz
Sunday, 12 January 2020 at 20:28:05 Greenwich Mean Time
 类似资料:
  • 问题内容: 刚从操场开始。我正在尝试创建一个简单的应用程序。 我创建了一个这样的日期对象: 我如何获得当前时间?在其他语言中,我可以执行以下操作: 但是我找不到像这样的任何属性/方法。我找到了一种方法。我应该用那个吗?如果是这样,怎么办? 问题答案: Swift 3更新: 我这样做: 在Objective-c中看到相同的问题,如何从NSDate获得小时和分钟?与Nate的答案相比,您将获得一个数字

  • 问题内容: 我使用以下代码检索当前日期和时间,然后使用以下方法将其添加到表中。 约会时间 hibernate 问题答案: 要将日期更改为序号,您需要使用以下后缀。看看这个链接,以及 还可以使用fmt库在jsp页面上设置日期格式

  • 我无法设置日期格式。接受作为参数。所以我创建了一个新的 它说below Date()方法不推荐使用,并且我在运行时得到below异常。 例外情况: 我的数据库的日期格式为-2012-02-16T00:00:00.000-0500我需要将它转换为格式为:dd-MMM-yyyy HH:MM:SS的字符串 我正在使用Java6

  • 问题内容: 在Go中获取当前时间戳并将其转换为字符串的最佳方法是什么?我需要日期和时间。YYYYMMDDhhmmss格式。 问题答案: 使用功能和方法。 打印出来,或者至少在几分钟前完成。(我在东部夏令时。)在时间包中定义的常量中有几种预定义的时间格式。 如果您希望使用UTC而非本地时区,则可以使用。

  • 我有一个方法可以生成一个随机的日期和时间。 打印输出类似于 我见过几个这样的问题和页面,但他们没有给我一个线索。

  • 本文向大家介绍PHP获取当前日期和时间及格式化方法参数,包括了PHP获取当前日期和时间及格式化方法参数的使用技巧和注意事项,需要的朋友参考一下 使用函式 date() 实现 显示的格式: 年-月-日 小时:分钟:秒 相关时间参数: a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" D - 星期几,三个英