我有一个NSDate对象,我从中创建两个NSStrings:日期和时间.目前我将日期格式设置为20111031,时间格式为23:15.
我想要做的是将其格式化为设备(iPhone,iPad,iPod Touch)当前区域设置(不是语言!).例如:
我怎样才能做到这一点?
我正在使用带有阿拉伯语语言环境 (ar_SA) 设置的 moment.js 格式化日期。
moment.locale('ar_SA');
moment([2016,05,01]).format('MMM YYYY');
//output ???? ????
Run Code Online (Sandbox Code Playgroud)
我想只使用语言环境格式化月份部分,但用英语格式化年份,例如:“???? 2016”(与使用角度过滤器格式化时相同:| date:'MMM yyyy')
有没有办法配置 moment.js 以自动执行此操作?(而不是拆分月份和年份格式并简单地将 2016 连接到 .format('MMM'))
我想将字符串“23/02/2018”转换为日期格式 23-fev-2018。
最重要的是,月份必须是葡萄牙语,指的是fevereiro。
我的问题是 datetime.date 通常打印为 (YYYY,MM,DD):
import datetime
datestr = "23/02/2018"
dateobj = datetime.datetime.strptime(datestr, "%d/%m/%Y")
print dateobj #year, month, day
Run Code Online (Sandbox Code Playgroud)
如何从 23/10/2017 的字符串打印到 23-out-2017 的日期格式,指的是葡萄牙语中的“outubro”月?
在错误的年份使用DateTimeFormatter(使用下面的模式)LocalDate结果。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
DateTimeFormatter format = DateTimeFormatter.ofPattern("MM-d-YYYY");
LocalDate date = LocalDate.of(2018, 12, 31);
date.format(format); // returns 12-31-2019 (expected 2018)
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
是否有可能在没有年份和月份的情况下以国际化的数字表示形式格式化 DateTime?
例如 new DateTime(2018, 8, 10) (今天)
一方面,我们有“d”代表10.08.2018(德语)或2018/08/10(日语)。
另一方面,我们有“M”给我们10. August(德语)或August 10(美国英语)
但我想要的是10.08.(德语)、08/10(日语)、8/10(美式英语)、10/08(英式英语)
在哪里可以找到Date.prototype.toLocaleDateString格式的官方列表?它没有从该 MDN 页面链接,并且这个措辞混乱的问题的可接受答案列出了一组不同的格式。CLDR 数据库很难使用。
我想要的是一张简单的地图,如下所示:
const date = new Date();
for (const locale of ['en-US', 'en-GB', 'en-CA'])
console.log(locale, '=>', date.toLocaleDateString(locale, { }));Run Code Online (Sandbox Code Playgroud)
{ month: 'short' }通过而不是空选项对象可以获得奖励积分。
有没有办法在 Java/Kotlin 中以正确的语言环境顺序格式化日期和月份(以紧凑形式)而不是年份?所以对于英语应该是“Sep 20”,但对于瑞典语应该是“20 sep.”。
为了比较,在 Cocoa 平台上,我可以执行以下操作(在 Swift 中):
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "sv_SE")
formatter.setLocalizedDateFormatFromTemplate("MMM d")
print(formatter.string(from: Date()))
Run Code Online (Sandbox Code Playgroud)
这将正确地扭转局面。Java SDK 是否有相同的功能?我一直在尝试各种形式DateTimeFormatter的SimpleTimeFormatAPI和旧API,但没有成功。
注意:与此问题不同,我不想要包含年份的完整媒体格式。我也不想要DateTimeFormatter.ofPattern("MMM d"),因为这在瑞典语中给出了不正确的结果,或者DateTimeFormatter.ofPattern("d MMM"),因为在英语中给出了不正确的结果。
我特别尝试使用 Power BI 中的 Power Query 编辑器将A 列中的字符串:转换yyyymmdd为日期格式。dd/mm/yyyy我已经可以使用下面的公式在 Excel 中执行此操作:任何想法
Excel
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
Run Code Online (Sandbox Code Playgroud) 我正在尝试格式化时间间隔。我想要一个看起来像这样的结果:
\n\n10:45 - 12:00 AM\nRun Code Online (Sandbox Code Playgroud)\n\n我可以使用以下方法非常接近这一点DateInvervalFormatter:
let cal = Calendar.current\nlet formatter = DateIntervalFormatter()\nformatter.dateStyle = .none\nformatter.timeStyle = .short\nlet start = Date()\nlet end = cal.date(byAdding: .hour, value: 1, to: start)\nformatter.string(from: DateInterval(start: start, end: end!))\nRun Code Online (Sandbox Code Playgroud)\n\n上面的内容(在 en_US 语言环境中)将产生如下输出:
\n\n5:27\xe2\x80\x89\xe2\x80\x93\xe2\x80\x896:27 PM\nRun Code Online (Sandbox Code Playgroud)\n\n看起来不错吧?但是,如果间隔中的两个日期位于不同日期,则此方法不起作用。例如:
\n\nlet formatter = DateIntervalFormatter()\nformatter.dateStyle = .none\nformatter.timeStyle = .short\nlet startComponents = DateComponents(year: 2020, month: 1, day: 1, hour: 23, minute: 45)\nlet start = cal.date(from: startComponents)\nlet end = cal.date(byAdding: .hour, value: 1, to: start!)\nformatter.string(from: DateInterval(start: …Run Code Online (Sandbox Code Playgroud) 我正在尝试将LocalDate变量格式化为dd.MMM.YYYY:
DateTimeFormatter.ofPattern("dd.MMM.yyyy")
Run Code Online (Sandbox Code Playgroud)
问题是,超过一半的时间我得到两个点。例如01-01-2000转到01.Jan..2000.
我知道为什么我会遇到这个问题,因为这三个Ms。当我使用时dd.MM.yyyy,我没有01.01.2000问题。第三M是问题。
我怎样才能解决这个问题?
date-formatting ×10
java ×3
javascript ×2
localization ×2
angularjs ×1
c# ×1
date ×1
datetime ×1
excel ×1
ios ×1
java-time ×1
locale ×1
locate ×1
momentjs ×1
nsdate ×1
powerbi ×1
powerquery ×1
python-3.x ×1
swift ×1
time ×1
windows ×1